[FFmpeg-cvslog] avformat/mov: Avoid allocation+copy when moving extradata

Andreas Rheinhardt git at videolan.org
Mon Jun 22 14:49:43 EEST 2020


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Sun Jun 14 21:04:36 2020 +0200| [526f5f59df4008487748e19ca88f45e05e784db4] | committer: Andreas Rheinhardt

avformat/mov: Avoid allocation+copy when moving extradata

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>

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

 libavformat/mov.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/libavformat/mov.c b/libavformat/mov.c
index cb0849f9d7..f78245fa28 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -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++;



More information about the ffmpeg-cvslog mailing list