[FFmpeg-devel] [PATCH] lavc/qsvdec: respect AVCodecContext->{width, height}
Xiang, Haihao
haihao.xiang at intel.com
Thu Jun 8 08:47:56 EEST 2023
From: Haihao Xiang <haihao.xiang at intel.com>
width and height may be known from the container
Signed-off-by: Haihao Xiang <haihao.xiang at intel.com>
---
libavcodec/qsvdec.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
index da700f25e9..5325030ea1 100644
--- a/libavcodec/qsvdec.c
+++ b/libavcodec/qsvdec.c
@@ -910,6 +910,7 @@ static int qsv_process_data(AVCodecContext *avctx, QSVContext *q,
}
if (q->reinit_flag || !q->session || !q->initialized) {
+ int reset_crop = !q->session;
mfxFrameAllocRequest request;
memset(&request, 0, sizeof(request));
@@ -929,6 +930,11 @@ static int qsv_process_data(AVCodecContext *avctx, QSVContext *q,
avctx->coded_width = param.mfx.FrameInfo.Width;
avctx->coded_height = param.mfx.FrameInfo.Height;
+ if (reset_crop && avctx->width && avctx->height) {
+ param.mfx.FrameInfo.CropW = avctx->width;
+ param.mfx.FrameInfo.CropH = avctx->height;
+ }
+
ret = MFXVideoDECODE_QueryIOSurf(q->session, ¶m, &request);
if (ret < 0)
return ff_qsv_print_error(avctx, ret, "Error querying IO surface");
--
2.34.1
More information about the ffmpeg-devel
mailing list