avformat/mov: Avoid allocation+copy when moving extradata

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
Andreas Rheinhardt 2020-06-14 21:04:36 +02:00
parent 88dc77e243
commit 526f5f59df
1 changed files with 2 additions and 5 deletions

View 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. */ /* Move the current stream extradata to the stream context one. */
sc->extradata_size[pseudo_stream_id] = extra_size; sc->extradata_size[pseudo_stream_id] = extra_size;
sc->extradata[pseudo_stream_id] = av_malloc(extra_size + AV_INPUT_BUFFER_PADDING_SIZE); sc->extradata[pseudo_stream_id] = st->codecpar->extradata;
if (!sc->extradata[pseudo_stream_id]) st->codecpar->extradata = NULL;
return AVERROR(ENOMEM);
memcpy(sc->extradata[pseudo_stream_id], st->codecpar->extradata, extra_size);
av_freep(&st->codecpar->extradata);
st->codecpar->extradata_size = 0; st->codecpar->extradata_size = 0;
} }
sc->stsd_count++; sc->stsd_count++;