mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-12 18:31:37 +00:00
qsvdec: Relax the surface vs coded dimension check
Fix a common vp8 decoding failure. Many vp8 clips cannot decode if hw_frames_ctx is enabled, reporting "Error during QSV decoding.: incompatible video parameters (-14)". It is due to mfx.FrameInfo.Width/Height not matching coded_w/coded_h. See: avconv -hwaccel qsv -init_hw_device qsv -c:v vp8_qsv -i vp8-test-vectors-r1/vp80-00-comprehensive-001.ivf -vf "hwdownload,format=nv12" -pix_fmt yuv420p -f md5 - Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
parent
559370f2c4
commit
6829a07944
@ -389,7 +389,7 @@ static mfxStatus qsv_frame_alloc(mfxHDL pthis, mfxFrameAllocRequest *req,
|
||||
mfxFrameInfo *i = &req->Info;
|
||||
mfxFrameInfo *i1 = &frames_hwctx->surfaces[0].Info;
|
||||
|
||||
if (i->Width != i1->Width || i->Height != i1->Height ||
|
||||
if (i->Width > i1->Width || i->Height > i1->Height ||
|
||||
i->FourCC != i1->FourCC || i->ChromaFormat != i1->ChromaFormat) {
|
||||
av_log(ctx->logctx, AV_LOG_ERROR, "Mismatching surface properties in an "
|
||||
"allocation request: %dx%d %d %d vs %dx%d %d %d\n",
|
||||
|
@ -149,9 +149,6 @@ static int qsv_decode_init(AVCodecContext *avctx, QSVContext *q)
|
||||
else if (frames_hwctx->frame_type & MFX_MEMTYPE_VIDEO_MEMORY_DECODER_TARGET)
|
||||
iopattern = MFX_IOPATTERN_OUT_VIDEO_MEMORY;
|
||||
}
|
||||
|
||||
frame_width = frames_hwctx->surfaces[0].Info.Width;
|
||||
frame_height = frames_hwctx->surfaces[0].Info.Height;
|
||||
}
|
||||
|
||||
if (!iopattern)
|
||||
|
Loading…
Reference in New Issue
Block a user