[FFmpeg-cvslog] lavc/decode: clear side data in reget_buffer()

Anton Khirnov git at videolan.org
Mon Sep 23 18:25:46 EEST 2024


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Fri Sep 20 11:16:17 2024 +0200| [bcbe999077a3b433ec10323ab9c05b9c7876866c] | committer: Anton Khirnov

lavc/decode: clear side data in reget_buffer()

Otherwise it may accumulate when e.g. global side data is repeatedly
copied to the frame with in each subsequent reget_buffer() call.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bcbe999077a3b433ec10323ab9c05b9c7876866c
---

 libavcodec/decode.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 844f1d02e4..a151f41442 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -1730,6 +1730,8 @@ static int reget_buffer_internal(AVCodecContext *avctx, AVFrame *frame, int flag
     if (!frame->data[0])
         return ff_get_buffer(avctx, frame, AV_GET_BUFFER_FLAG_REF);
 
+    av_frame_side_data_free(&frame->side_data, &frame->nb_side_data);
+
     if ((flags & FF_REGET_BUFFER_FLAG_READONLY) || av_frame_is_writable(frame))
         return ff_decode_frame_props(avctx, frame);
 



More information about the ffmpeg-cvslog mailing list