[FFmpeg-devel] QSV Decoding - Issues and Regressions

Hendrik Leppkes h.leppkes at gmail.com
Mon Aug 3 14:18:04 CEST 2015


Hey,

after a discussion on IRC about the declining quality of the QSV
decoders, I decided to do actual tests and document the results, so we
can get these fixed.

A lot of these issues are regressions from recent changes, and work
fine in the original qsv decoders merged from libav, so they should be
given extra attention.

1)
Content with frame size changes is not handled at all.
A change to a smaller frame size will result in image corruption, and
a change to a bigger frame size will cause decoding to fail entirely.

Sample (large to small):
http://fate-suite.ffmpeg.org/h264/reinit-large_420_8-to-small_420_8.h264

In this case, as hardware buffers are re-used, the images after the
change to a smaller size result in showing parts of the old image and
the new smaller image in the top left corner instead.

2)
Seeking is broken. For some reason refactoring of the qsv decoders has
resulted in their flush functions to become void. Seeking using ffplay
and the qsv decoder results in serious playback disruption.

3)
AV_PIX_FMT_QSV output is no longer functional. Refactoring has removed
the ff_get_format call, which results in API users no longer being
able to select the QSV pix fmt.

These 3 issues are regression from the original decoder, and should be
corrected before further decoders are merged. As additional code using
the common qsv may require further changes in the future, its best to
fix the common code before adding even more.

I'll make sure to review future qsv patches more actively to hopefully
avoid big regressions like these in the future as well. I have a
system setup now to test qsv, so that should be easier in the future.

- Hendrik


More information about the ffmpeg-devel mailing list