diff options
author | Zhong Li <zhong.li@intel.com> | 2019-08-13 14:11:09 +0800 |
---|---|---|
committer | Zhong Li <zhong.li@intel.com> | 2019-08-20 13:34:03 +0800 |
commit | 00d0a4aa9eda8553113e51556123c46648a5f31b (patch) | |
tree | 14bb31cf40384209bb22afc066cead7ce1c441a0 /libavcodec/qsvdec_h2645.c | |
parent | f3dfd34f27ae11279baa9e2e2525e990b7c858f4 (diff) |
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>
Diffstat (limited to 'libavcodec/qsvdec_h2645.c')
-rw-r--r-- | libavcodec/qsvdec_h2645.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libavcodec/qsvdec_h2645.c b/libavcodec/qsvdec_h2645.c index 9b49f5506e..eb1dc336a4 100644 --- a/libavcodec/qsvdec_h2645.c +++ b/libavcodec/qsvdec_h2645.c @@ -103,6 +103,7 @@ static av_cold int qsv_decode_init(AVCodecContext *avctx) } } + s->qsv.orig_pix_fmt = AV_PIX_FMT_NV12; s->packet_fifo = av_fifo_alloc(sizeof(AVPacket)); if (!s->packet_fifo) { ret = AVERROR(ENOMEM); |