[FFmpeg-trac] #9630(avcodec:new): regression: qsvdec wrong output

FFmpeg trac at avcodec.org
Mon Feb 7 19:55:49 EET 2022


#9630: regression: qsvdec wrong output
-------------------------------------+-------------------------------------
             Reporter:  U. Artie     |                     Type:  defect
  Eoff                               |
               Status:  new          |                 Priority:  critical
            Component:  avcodec      |                  Version:  git-
                                     |  master
             Keywords:  qsvdec, qsv  |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 Some avc decoded files produce wrong output since:
 {{{
 commit 08181624e041d36742870415319a1c599a6d3870
 Author: Anton Khirnov <anton at khirnov.net>
 Date:   Thu Jan 6 17:16:47 2022 +0100

     lavc/qsvdec: switch to the new FIFO API
 }}}

 How to reproduce:
 {{{
 ffmpeg -hwaccel qsv -init_hw_device qsv=hw:/dev/dri/renderD128
 -hwaccel_output_format nv12 -hwaccel_flags allow_profile_mismatch -v
 verbose -c:v h264_qsv -i sunflower_420_1920x1080.264 -pix_fmt yuv420p -f
 rawvideo -vsync passthrough -autoscale 0 -vframes 496 -y output.yuv

 [2022-02-07 17:46:21] ffmpeg version N-105504-g04cc7a5548fa Copyright (c)
 2000-2022 the FFmpeg developers
 [2022-02-07 17:46:21]   built with gcc 11 (GCC)
 [2022-02-07 17:46:21]   configuration:
 --prefix=/home/uaeoff/Work/workspace/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
 [2022-02-07 17:46:21]   libavutil      57. 21.100 / 57. 21.100
 [2022-02-07 17:46:21]   libavcodec     59. 20.100 / 59. 20.100
 [2022-02-07 17:46:21]   libavformat    59. 17.101 / 59. 17.101
 [2022-02-07 17:46:21]   libavdevice    59.  5.100 / 59.  5.100
 [2022-02-07 17:46:21]   libavfilter     8. 26.101 /  8. 26.101
 [2022-02-07 17:46:21]   libswscale      6.  5.100 /  6.  5.100
 [2022-02-07 17:46:21]   libswresample   4.  4.100 /  4.  4.100
 [2022-02-07 17:46:21]   libpostproc    56.  4.100 / 56.  4.100
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1a63880] Trying to use DRM
 render node for device 0, with matching kernel driver (i915).
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1a63880] libva: VA-API
 version 1.14.0
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1a63880] libva: User
 requested driver 'iHD'
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1a63880] libva: Trying to
 open /home/uaeoff/Work/workspace/media/install/lib/dri/iHD_drv_video.so
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1a63880] libva: Found init
 function __vaDriverInit_1_14
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1a63880] libva:
 va_openDriver() returns 0
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1a63880] Initialised VAAPI
 connection: version 1.14
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1a63880] VAAPI driver: Intel
 iHD driver for Intel(R) Gen Graphics - 22.2.0 ().
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1a63880] Driver not found in
 known nonstandard list, using standard behaviour.
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1a63340] Initialize MFX
 session: API version is 1.35, implementation version is 1.35
 [2022-02-07 17:46:21] [h264 @ 0x1b412c0] Reinit context to 1920x1088,
 pix_fmt: yuv420p
 [2022-02-07 17:46:21] [h264 @ 0x1b412c0] Increasing reorder buffer to 1
 [2022-02-07 17:46:21] [h264 @ 0x1b37e40] Stream #0: not enough frames to
 estimate rate; consider increasing probesize
 [2022-02-07 17:46:21] Input #0, h264, from
 '/home/uaeoff/Work/workspace/media/src/otc-
 media/assets/sanity/avc/sunflower_420_1920x1080.264':
 [2022-02-07 17:46:21]   Duration: N/A, bitrate: N/A
 [2022-02-07 17:46:21]   Stream #0:0: Video: h264 (Main), 1 reference
 frame, yuv420p(top first), 1920x1080 (1920x1088), 25 fps, 25 tbr, 1200k
 tbn
 [2022-02-07 17:46:21] [h264_mp4toannexb @ 0x1b41e80] The input looks like
 it is Annex B already
 [2022-02-07 17:46:21] Stream mapping:
 [2022-02-07 17:46:21]   Stream #0:0 -> #0:0 (h264 (h264_qsv) -> rawvideo
 (native))
 [2022-02-07 17:46:21] Press [q] to stop, [?] for help
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1a627c0] VAAPI driver: Intel
 iHD driver for Intel(R) Gen Graphics - 22.2.0 ().
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1a627c0] Driver not found in
 known nonstandard list, using standard behaviour.
 [2022-02-07 17:46:21] [h264_qsv @ 0x1c17e80] Decoder: output is video
 memory surface
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1b668c0] VAAPI driver: Intel
 iHD driver for Intel(R) Gen Graphics - 22.2.0 ().
 [2022-02-07 17:46:21] [AVHWDeviceContext @ 0x1b668c0] Driver not found in
 known nonstandard list, using standard behaviour.
 [2022-02-07 17:46:21] [h264_qsv @ 0x1c17e80] Decoder: output is video
 memory surface
 [2022-02-07 17:46:21] [graph 0 input from stream 0:0 @ 0x2845940] w:1920
 h:1080 pixfmt:nv12 tb:1/1200000 fr:25/1 sar:0/1
 [2022-02-07 17:46:21] [auto_scale_0 @ 0x2848540] w:iw h:ih flags:''
 interl:0
 [2022-02-07 17:46:21] [format @ 0x2846a00] auto-inserting filter
 'auto_scale_0' between the filter 'Parsed_null_0' and the filter 'format'
 [2022-02-07 17:46:21] [auto_scale_0 @ 0x2848540] w:1920 h:1080 fmt:nv12
 sar:0/1 -> w:1920 h:1080 fmt:yuv420p sar:0/1 flags:0x0
 [2022-02-07 17:46:21] Output #0, rawvideo, to
 '/home/uaeoff/Work/workspace/media/src/vaapi-fits-smoke/results/smoke
 /dc1518ec-883d-11ec-b648-a0291914d55d_0/_0.test.ffmpeg-
 qsv.decode.avc/default/sunflower_420_1920x1080_1920x1080_I420.yuv':
 [2022-02-07 17:46:21]   Metadata:
 [2022-02-07 17:46:21]     encoder         : Lavf59.17.101
 [2022-02-07 17:46:21]   Stream #0:0: Video: rawvideo, 1 reference frame
 (I420 / 0x30323449), yuv420p(tv, top coded first (swapped)), 1920x1080
 (0x0), q=2-31, 622080 kb/s, 25 fps, 25 tbn
 [2022-02-07 17:46:21]     Metadata:
 [2022-02-07 17:46:21]       encoder         : Lavc59.20.100 rawvideo
 [2022-02-07 17:46:21] frame=    1 fps=0.0 q=0.0 size=       0kB
 time=00:00:00.00 bitrate=N/A speed=   0x
 [2022-02-07 17:46:24] [h264_qsv @ 0x1c17e80] A decode call did not consume
 any data: expect more data at input (-10)
 [2022-02-07 17:46:24]     Last message repeated 2 times
 [2022-02-07 17:46:24] No more output streams to write to, finishing.
 [2022-02-07 17:46:24] frame=  495 fps=142 q=-0.0 Lsize= 1503562kB
 time=00:00:16.52 bitrate=745592.3kbits/s speed=4.75x
 [2022-02-07 17:46:24] video:1503562kB audio:0kB subtitle:0kB other
 streams:0kB global headers:0kB muxing overhead: 0.000000%
 [2022-02-07 17:46:24] Input file #0 (/home/uaeoff/Work/workspace/media/src
 /otc-media/assets/sanity/avc/sunflower_420_1920x1080.264):
 [2022-02-07 17:46:24]   Input stream #0:0 (video): 496 packets read
 (19124680 bytes); 495 frames decoded;
 [2022-02-07 17:46:24]   Total: 496 packets (19124680 bytes) demuxed
 [2022-02-07 17:46:24] Output file #0
 (/home/uaeoff/Work/workspace/media/src/vaapi-fits-smoke/results/smoke
 /dc1518ec-883d-11ec-b648-a0291914d55d_0/_0.test.ffmpeg-
 qsv.decode.avc/default/sunflower_420_1920x1080_1920x1080_I420.yuv):
 [2022-02-07 17:46:24]   Output stream #0:0 (video): 495 frames encoded;
 495 packets muxed (1539648000 bytes);
 [2022-02-07 17:46:24]   Total: 495 packets (1539648000 bytes) muxed
 [2022-02-07 17:46:24] [AVIOContext @ 0x1b6e040] Statistics: 1539648000
 bytes written, 0 seeks, 5874 writeouts
 [2022-02-07 17:46:24] [AVIOContext @ 0x1b40b40] Statistics: 19124680 bytes
 read, 0 seeks
 }}}

 Before above commit:
 {{{
 ls -la output.yuv
 -rw-rw-r-- 1 uaeoff uaeoff 1542758400 Feb  7 09:45
 md5sum output.yuv
 2c3fa0aad1b55e0bee2a05e16a655b14 output.yuv
 }}}

 After above commit:
 {{{
 $ ls -la output.yuv
 -rw-rw-r-- 1 uaeoff uaeoff 1539648000 Feb  7 09:46
 $ md5sum output.yuv
 02cc6ba6bdee0d1dc926d15a64dba6e8 output.yuv
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9630>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list