[FFmpeg-devel] [PATCH 5/5] avcodec/qsvenc: Ensure payload array is initialized when using enc_ctrl

Soft Works softworkz at hotmail.com
Mon Nov 29 20:51:56 EET 2021


Signed-off-by: softworkz <softworkz at hotmail.com>
---
 libavcodec/qsvenc.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index 06f55604b5..2c3b22e5f7 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -1477,7 +1477,16 @@ static int encode_frame(AVCodecContext *avctx, QSVEncContext *q,
     }
 #endif
 
-    if (q->set_encode_ctrl_cb) {
+    if (q->set_encode_ctrl_cb && qsv_frame) {
+
+        if (!qsv_frame->enc_ctrl.Payload) {
+            qsv_frame->enc_ctrl.Payload = av_mallocz(sizeof(mfxPayload*) * QSV_MAX_ENC_PAYLOAD);
+            if (!qsv_frame->enc_ctrl.Payload) {
+                av_freep(&frame);
+                return AVERROR(ENOMEM);
+            }
+        }
+
         q->set_encode_ctrl_cb(avctx, frame, &qsv_frame->enc_ctrl);
     }
 
-- 
2.30.2.windows.1



More information about the ffmpeg-devel mailing list