[ffmpeg-vaapi] jpeg encode failed when build with gcc 9.1.1 on Fedora 30
Summary of the bug:
On Fedora 30, The output of ffmpeg vaapi jpeg encode is not correct both with iHD and i965 driver, it gets green output when playback with ffplay.
The same codes (including libva,msdk,gmmlib,iHD/i965 driver and ffmpeg) work well on Fedora 29 built with gcc 8.3.1
gcc version is 9.1.1 on Fedora 30
gcc version is 8.3.1 on Fedora 29
libva 520b9e54f95d
libva-utils 7be46f017cae
intel-vaapi-driver 7b859a9b143f
gmmlib 8feb8385a3c9
intel-media-driver 37f9922543d7
msdk 98ff579a9c4f
ffmpeg 58d167bcd517
How to reproduce:
% ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -v verbose -f rawvideo -pix_fmt yuv420p -s:v 1280x720 -i /opt/media/src/assets/otc-media/yuv/stockholm_1280x720_604_1280x720_I420.yuv -vf 'format=nv12,hwupload' -c:v mjpeg_vaapi -global_quality 75 -vframes 10 -y /opt/media/src/vaapi-fits-smoke/results/smoke/6ed45286-7853-11e9-b16d-0242ac110002_0/_0.test.ffmpeg-vaapi.encode.jpeg/cqp/stockholm-cqp-baseline-75.mjpeg
% ffplay stockholm-cqp-baseline-75.mjpeg
% ffmpeg -v
ffmpeg version N-93863-g58d167bcd5 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8 (GCC)
configuration: --prefix=/opt/media/install --disable-static --enable-shared --enable-libdrm --enable-vaapi --enable-libmfx --disable-amf --disable-audiotoolbox --disable-cuda --disable-cuda-sdk --disable-cuvid --disable-d3d11va --disable-dxva2 --disable-libnpp --disable-mmal --disable-nvdec --disable-nvenc --disable-omx --disable-omx-rpi --disable-rkmpp --disable-v4l2-m2m --disable-vdpau --disable-videotoolbox --enable-gpl --enable-libx264 --enable-libx265
libavutil 56. 27.100 / 56. 27.100
libavcodec 58. 52.101 / 58. 52.101
libavformat 58. 27.103 / 58. 27.103
libavdevice 58. 7.100 / 58. 7.100
libavfilter 7. 53.100 / 7. 53.100
libswscale 5. 4.101 / 5. 4.101
libswresample 3. 4.100 / 3. 4.100
libpostproc 55. 4.100 / 55. 4.100
Missing argument for option 'v'.
Error splitting the argument list: Invalid argument
When I play the ffmpeg encoded video with gstreamer, it plays fine. However, when I play the same video with yamidecode it fails:
If I compile ffmpeg with
--disable-optimizations
, then this problem goes away completely.