lavc/qsvdec: Replace current parser with MFXVideoDECODE_DecodeHeader()
authorZhong Li <zhong.li@intel.com>
Tue, 13 Aug 2019 06:11:09 +0000 (14:11 +0800)
committerZhong Li <zhong.li@intel.com>
Tue, 20 Aug 2019 05:34:03 +0000 (13:34 +0800)
commit00d0a4aa9eda8553113e51556123c46648a5f31b
tree14bb31cf40384209bb22afc066cead7ce1c441a0
parentf3dfd34f27ae11279baa9e2e2525e990b7c858f4
lavc/qsvdec: Replace current parser with MFXVideoDECODE_DecodeHeader()

Using MSDK parser can improve qsv decoder pass rate in some cases (E.g:
sps declares a wrong level_idc, smaller than it should be).
And it is necessary for adding new qsv decoders such as MJPEG and VP9
since current parser can't provide enough information.
Actually using MFXVideoDECODE_DecodeHeader() was disscussed at
https://ffmpeg.org/pipermail/ffmpeg-devel/2015-July/175734.html and merged as commit 1acb19d,
but was overwritten when merged libav patches (commit: 1f26a23) without any explain.

Split decode header from decode_init, and call it for everyframe to
detect format/resoultion change. It can fix some regression issues such
as hevc 10bits decoding.

Signed-off-by: Zhong Li <zhong.li@intel.com>
Signed-off-by: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com>
libavcodec/qsvdec.c
libavcodec/qsvdec.h
libavcodec/qsvdec_h2645.c
libavcodec/qsvdec_other.c