mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-15 20:01:42 +00:00
qsvdec: when a frames ctx is supplied, use its frame dimensions
The allocated frame size may be larger than the coded dimensions.
This commit is contained in:
parent
92736c74fb
commit
924e2ecd2b
@ -91,6 +91,8 @@ static int qsv_decode_init(AVCodecContext *avctx, QSVContext *q)
|
||||
mfxSession session = NULL;
|
||||
int iopattern = 0;
|
||||
mfxVideoParam param = { { 0 } };
|
||||
int frame_width = avctx->coded_width;
|
||||
int frame_height = avctx->coded_height;
|
||||
int ret;
|
||||
|
||||
desc = av_pix_fmt_desc_get(avctx->sw_pix_fmt);
|
||||
@ -122,6 +124,9 @@ 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)
|
||||
@ -146,8 +151,8 @@ static int qsv_decode_init(AVCodecContext *avctx, QSVContext *q)
|
||||
param.mfx.FrameInfo.BitDepthChroma = desc->comp[0].depth;
|
||||
param.mfx.FrameInfo.Shift = desc->comp[0].depth > 8;
|
||||
param.mfx.FrameInfo.FourCC = q->fourcc;
|
||||
param.mfx.FrameInfo.Width = avctx->coded_width;
|
||||
param.mfx.FrameInfo.Height = avctx->coded_height;
|
||||
param.mfx.FrameInfo.Width = frame_width;
|
||||
param.mfx.FrameInfo.Height = frame_height;
|
||||
param.mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
|
||||
|
||||
param.IOPattern = q->iopattern;
|
||||
|
Loading…
Reference in New Issue
Block a user