]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/avpacket.c
Merge commit '6151e9128ce2a84a443c82b78f5b5cb364ba2ab4'
[ffmpeg] / libavcodec / avpacket.c
index 26d561a00a073f10cc52e2c6a475a3be8f9fb438..a04cdaf5304e8f20a3f18dcb889c2b5906794943 100644 (file)
@@ -296,7 +296,18 @@ int av_packet_add_side_data(AVPacket *pkt, enum AVPacketSideDataType type,
                             uint8_t *data, size_t size)
 {
     AVPacketSideData *tmp;
-    int elems = pkt->side_data_elems;
+    int i, elems = pkt->side_data_elems;
+
+    for (i = 0; i < elems; i++) {
+        AVPacketSideData *sd = &pkt->side_data[i];
+
+        if (sd->type == type) {
+            av_free(sd->data);
+            sd->data = data;
+            sd->size = size;
+            return 0;
+        }
+    }
 
     if ((unsigned)elems + 1 > AV_PKT_DATA_NB)
         return AVERROR(ERANGE);