#10261 closed defect (fixed)

FFMPEG-QSV 1:N transcoding error/hang

Reported by: sanasar Owned by: haihao
Priority: normal Component: avfilter
Version: 6.0 Keywords: QSV
Cc: dvrogozh Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

We have identified regression with latest public FFMPEG: Command line below will either error out or hang.

  • version n6.0 bad
  • version a6e9d01f88 bad (Latest master)
  • version d4f853f4ed good

Following configuration was used running on ArcticSound M

  • libva: 2.17.0
  • libva-utils: 2.17.1
  • gmmlib: 22.3.4
  • media-driver: 23.1.3
  • onevpl-gpu: 23.1.3
  • mediasdk: 23.1.3
  • oneVPL: v2023.1.2
ffmpeg -y -hwaccel qsv -hwaccel_device /dev/dri/renderD128 \
-extra_hw_frames 8 -c:v hevc_qsv -re -i bbb_sunflower_1080p_60fps_4Mbps_38kframes.h265 \
-filter_complex '[0:v]split[e_4k60][in1080p];[in1080p]scale_qsv=1920:1080[s1080p];[s1080p]split=3[e_1080p60][in720p60][in1080p30];[in720p60]scale_qsv=1280:720[s720p];[s720p]split[e_720p60][out720p60];[in1080p30]fps=fps=30[e_1080p30];[out720p60]fps=fps=30[f_720p30];[f_720p30]split[e_720p30][in_360p];[in_360p]scale_qsv=640:360[s360p];[s360p]split[e_360p30][in_288p];[in_288p]scale_qsv=352:288[s288p];[s288p]split[e_288p30][in_180p];[in_180p]scale_qsv=240:180[e_180p30]' \
-map [e_4k60] -c:v hevc_qsv -preset veryslow -b:v 9M -g 256 -look_ahead_depth 0 -extbrc 1 -b_strategy 1 -adaptive_i 0 -adaptive_b 0 -low_power 1 -async_depth 2 -maxrate 18M -bufsize 36M -y -f null - \
-map [e_1080p60] -c:v hevc_qsv -preset veryslow -b:v 5M -g 256 -look_ahead_depth 0 -extbrc 1 -b_strategy 1 -adaptive_i 0 -adaptive_b 0 -low_power 1 -async_depth 2 -maxrate 10M -bufsize 20M -y -f null - \
-map [e_1080p30] -c:v hevc_qsv -preset veryslow -b:v 5M -g 256 -look_ahead_depth 0 -extbrc 1 -b_strategy 1 -adaptive_i 0 -adaptive_b 0 -low_power 1 -async_depth 2 -maxrate 10M -bufsize 20M -y -f null - \
-map [e_720p60] -c:v hevc_qsv -preset veryslow -b:v 3M -g 256 -look_ahead_depth 0 -extbrc 1 -b_strategy 1 -adaptive_i 0 -adaptive_b 0 -low_power 1 -async_depth 2 -maxrate 6M -bufsize 12M -y -f null - \
-map [e_720p30] -c:v hevc_qsv -preset veryslow -b:v 3M -g 256 -look_ahead_depth 0 -extbrc 1 -b_strategy 1 -adaptive_i 0 -adaptive_b 0 -low_power 1 -async_depth 2 -maxrate 6M -bufsize 12M -y -f null - \
-map [e_360p30] -c:v hevc_qsv -preset veryslow -b:v 1M -g 256 -look_ahead_depth 0 -extbrc 1 -b_strategy 1 -adaptive_i 0 -adaptive_b 0 -low_power 1 -async_depth 2 -maxrate 2M -bufsize 4M -y -f null - \
-map [e_288p30] -c:v hevc_qsv -preset veryslow -b:v 800k -g 256 -look_ahead_depth 0 -extbrc 1 -b_strategy 1 -adaptive_i 0 -adaptive_b 0 -low_power 1 -async_depth 2 -maxrate 1600k -bufsize 3200k -y -f null - \
-map [e_180p30] -c:v hevc_qsv -preset veryslow -b:v 500k -g 256 -look_ahead_depth 0 -extbrc 1 -b_strategy 1 -adaptive_i 0 -adaptive_b 0 -low_power 1 -async_depth 2 -maxrate 1M -bufsize 2M -y -f null -

Following error is observed. Sometimes we do see hang after error is printed and ffmpeg needs to be killed.

[hevc_qsv @ 0x5566744eb380] A decode call did not consume any data: expect more data at input (-10)95 bitrate=N/A speed=   1x    peed=N/A
    Last message repeated 2 times
[out_2_0 @ 0x5566749f09c0] 100 buffers queued in out_2_0, something may be wrong.
[out_2_0 @ 0x5566749f09c0] 1000 buffers queued in out_2_0, something may be wrong.
[out_2_0 @ 0x5566749f09c0] 10000 buffers queued in out_2_0, something may be wrong.
[out_2_0 @ 0x5566749f09c0] 100000 buffers queued in out_2_0, something may be wrong.
[out_2_0 @ 0x5566749f09c0] 1000000 buffers queued in out_2_0, something may be wrong.
[out_2_0 @ 0x5566749f09c0] 10000000 buffers queued in out_2_0, something may be wrong.
[out_2_0 @ 0x5566749f09c0] 100000000 buffers queued in out_2_0, something may be wrong.
Error marking filters as finished
Conversion failed!

Change History (4)

comment:1 by sanasar, 14 months ago

FFMPEG bisection was done and issue started from below commit

commit 077e63496581edf02e503e7d99dbc4e1a5670246
Author: Haihao Xiang <haihao.xiang@intel.com>
Date:   Mon Jan 30 09:37:17 2023 +0800

    lavfi/vpp_qsv: add rate option

    This is used to control the output at frame rate or field rate when
    deinterlace is expected and framerate is not specified.

    Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>

 libavfilter/vf_vpp_qsv.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)
gta@DUT5167ATSM:~$ git bisect log
git bisect start
# bad: [a6e9d01f88a707f8a2057e01b5ad2e8968109530] avcodec/libx264: Use av_pix_fmt_count_planes() where appropriate
git bisect bad a6e9d01f88a707f8a2057e01b5ad2e8968109530
# good: [d4f853f4ed39f51afbc14b3a7fe3bd7a435eb851] doc/filters.texi: add documentation for the ts_sync_mode framesync option
git bisect good d4f853f4ed39f51afbc14b3a7fe3bd7a435eb851
# good: [e5e29eda5aae8eb5d1d32f647c68c0543db63217] lavc/avcodec: improve AV_CODEC_FLAG_RECON_FRAME doxy
git bisect good e5e29eda5aae8eb5d1d32f647c68c0543db63217
# bad: [22960783978d9e0b6d4a4ed21f503bd24662aa7e] avutil/frame: deprecate AVFrame.coded_picture_number and display_picture_number
git bisect bad 22960783978d9e0b6d4a4ed21f503bd24662aa7e
# bad: [7e1d474021898251dd4b3e56c0d153eafd440f7c] avfilter/af_compand: simplify frame allocation
git bisect bad 7e1d474021898251dd4b3e56c0d153eafd440f7c
# good: [431f6260ac6408fdccfe06dd5276084b17c3557f] mov: Reduce the verbosity of the warning about fragmented MP4 vs advanced edit lists
git bisect good 431f6260ac6408fdccfe06dd5276084b17c3557f
# bad: [82da22066c0818b606812d479674929a229386e2] lavc: deprecate CrystalHD decoders
git bisect bad 82da22066c0818b606812d479674929a229386e2
# bad: [077e63496581edf02e503e7d99dbc4e1a5670246] lavfi/vpp_qsv: add rate option
git bisect bad 077e63496581edf02e503e7d99dbc4e1a5670246
# good: [bbe95f7353a972f28a48be8da883549f02c59e4b] x86: replace explicit REP_RETs with RETs
git bisect good bbe95f7353a972f28a48be8da883549f02c59e4b
# good: [ad95d9c855db3e78e6495ea52e5fd2e089320d74] avformat/lafdec: Check if all data was read
git bisect good ad95d9c855db3e78e6495ea52e5fd2e089320d74
# good: [7d49fef8b426041e22fde77771b435d9411241a0] lavc/vaapi_encode: fix propagating durations and opaques
git bisect good 7d49fef8b426041e22fde77771b435d9411241a0
# first bad commit: [077e63496581edf02e503e7d99dbc4e1a5670246] lavfi/vpp_qsv: add rate option

comment:2 by dvrogozh, 14 months ago

Cc: dvrogozh added
Note: See TracTickets for help on using tickets.