From: Zhao Zhili <[email protected]>
---
libavutil/frame.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/libavutil/frame.c b/libavutil/frame.c
index dcf1fc3d17..bb20e99331 100644
--- a/libavutil/frame.c
+++ b/libavutil/frame.c
@@ -692,10 +692,23 @@ AVFrameSideData *av_frame_new_side_data_from_buf(AVFrame
*frame,
AVBufferRef *buf)
{
AVFrameSideData *ret, **tmp;
+ int i;
if (!buf)
return NULL;
+ for (i = 0; i < frame->nb_side_data; i++) {
+ AVFrameSideData *sd = frame->side_data[i];
+ if (sd->type == type) {
+ av_buffer_unref(&sd->buf);
+ av_dict_free(&sd->metadata);
+ sd->buf = buf;
+ sd->data = buf->data;
+ sd->size = buf->size;
+ return sd;
+ }
+ }
+
if (frame->nb_side_data > INT_MAX / sizeof(*frame->side_data) - 1)
return NULL;
--
2.22.0
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".