]> git.sesse.net Git - ffmpeg/commitdiff
avformat/mov: Avoid allocation+copy when moving extradata
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Sun, 14 Jun 2020 19:04:36 +0000 (21:04 +0200)
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Mon, 22 Jun 2020 11:12:49 +0000 (13:12 +0200)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavformat/mov.c

index cb0849f9d74366a4ea5f4f2fc099749d1210b910..f78245fa28b9ad267714d931e1fbfbc8e53cb349 100644 (file)
@@ -2545,11 +2545,8 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
 
             /* Move the current stream extradata to the stream context one. */
             sc->extradata_size[pseudo_stream_id] = extra_size;
-            sc->extradata[pseudo_stream_id] = av_malloc(extra_size + AV_INPUT_BUFFER_PADDING_SIZE);
-            if (!sc->extradata[pseudo_stream_id])
-                return AVERROR(ENOMEM);
-            memcpy(sc->extradata[pseudo_stream_id], st->codecpar->extradata, extra_size);
-            av_freep(&st->codecpar->extradata);
+            sc->extradata[pseudo_stream_id] = st->codecpar->extradata;
+            st->codecpar->extradata      = NULL;
             st->codecpar->extradata_size = 0;
         }
         sc->stsd_count++;