Opened 4 years ago

Closed 4 years ago

#8637 closed defect (fixed)

regression on transcoding w/ qsv @1128aa8

Reported by: dvrogozh Owned by:
Priority: important Component: ffmpeg
Version: git-master Keywords: qsv regression
Cc: sw@jkqxz.net Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
Transcoding w/ qsv fails on SKL - see example below. This is a regression: use case worked as of f53fc93.

How to reproduce:

# wget https://fate-suite.libav.org/h264-conformance/AUD_MW_E.264
# ffmpeg -hwaccel qsv -hwaccel_device /dev/dri/renderD128 -c:v h264_qsv -re -i AUD_MW_E.264 -c:a copy -c:v h264_qsv -b:v 1000000 -y out.mp4
ffmpeg version N-97504-g1128aa8 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-39)
  configuration: --prefix=/home/dvrogozh/git/github/install --enable-libmfx
  libavutil      56. 43.100 / 56. 43.100
  libavcodec     58. 82.100 / 58. 82.100
  libavformat    58. 42.101 / 58. 42.101
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 79.100 /  7. 79.100
  libswscale      5.  6.101 /  5.  6.101
  libswresample   3.  6.100 /  3.  6.100
Input #0, h264, from 'AUD_MW_E.264':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: h264 (Constrained Baseline), yuv420p(progressive), 176x144, 25 fps, 25 tbr, 1200k tbn, 50 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (h264_qsv) -> h264 (h264_qsv))
Press [q] to stop, [?] for help
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

This seems to be a regression since command line works fine on f53fc93. Here is analisys:

$ git bisect start
$ git bisect bad 1128aa8
$ git bisect good f53fc93

git bisect log
git bisect start
# bad: [1128aa875367f66ac11adc30364d5652919a2591] avformat: only allow a single bitstream filter when muxing
git bisect bad 1128aa875367f66ac11adc30364d5652919a2591
# good: [f53fc935b8b75cd301e8beb8ab8e276034cd3442] avfilter/vf_pixscope: also show standard deviation of zoomed area
git bisect good f53fc935b8b75cd301e8beb8ab8e276034cd3442
# good: [5a1ff449071fefa7913858fbe2d084f698443e57] lavc/qsvenc: Add hardware config metadata
git bisect good 5a1ff449071fefa7913858fbe2d084f698443e57
# bad: [8abd3b202821e9c491f44d097686402aafdda7c5] ffmpeg: Use hardware config metadata with encoders
git bisect bad 8abd3b202821e9c491f44d097686402aafdda7c5
# good: [e2542124059f5960ac2bbd94183012814263f20d] ffmpeg: Make filter hardware device selection clearer
git bisect good e2542124059f5960ac2bbd94183012814263f20d
# first bad commit: [8abd3b202821e9c491f44d097686402aafdda7c5] ffmpeg: Use hardware config metadata with encoders

So, this points out to:

commit 8abd3b202821e9c491f44d097686402aafdda7c5
Author: Mark Thompson <sw@jkqxz.net>
Date:   Mon Apr 13 16:33:20 2020 +0100

    ffmpeg: Use hardware config metadata with encoders

    This can support encoders which want frames and/or device contexts.  For
    the device case, it currently picks the first initialised device of the
    desired type to give to the encoder - a new option would be needed if it
    were necessary to choose between multiple devices of the same type.

Change History (2)

comment:1 by Carl Eugen Hoyos, 4 years ago

Keywords: qsv regression added
Priority: normalimportant
Version: unspecifiedgit-master

comment:2 by Linjie.Fu, 4 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.