summaryrefslogtreecommitdiff
path: root/libavformat/mxfenc.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-11-07 22:11:22 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-12-19 01:01:47 +0100
commitbb69b734c74cc22301a4fa2c3263077ffe7064b1 (patch)
tree493093217de8a93c460b60cebca7d329ed7efcb2 /libavformat/mxfenc.c
parent25ddf888d8bac2a9c55a18f9651f27a62d50e2fb (diff)
avformat/mxfenc: Avoid allocation for timecode track
Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavformat/mxfenc.c')
-rw-r--r--libavformat/mxfenc.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
index bb6d94bda5..1cdfc07382 100644
--- a/libavformat/mxfenc.c
+++ b/libavformat/mxfenc.c
@@ -420,6 +420,7 @@ typedef struct MXFContext {
int track_instance_count; // used to generate MXFTrack uuids
int cbr_index; ///< use a constant bitrate index
uint8_t unused_tags[MXF_NUM_TAGS]; ///< local tags that we know will not be used
+ MXFStreamContext timecode_track_priv;
} MXFContext;
static void mxf_write_uuid(AVIOContext *pb, enum MXFMetadataSetType type, int value)
@@ -2704,9 +2705,7 @@ static int mxf_init(AVFormatContext *s)
mxf->timecode_track = av_mallocz(sizeof(*mxf->timecode_track));
if (!mxf->timecode_track)
return AVERROR(ENOMEM);
- mxf->timecode_track->priv_data = av_mallocz(sizeof(MXFStreamContext));
- if (!mxf->timecode_track->priv_data)
- return AVERROR(ENOMEM);
+ mxf->timecode_track->priv_data = &mxf->timecode_track_priv;
mxf->timecode_track->index = -1;
return 0;
@@ -3079,10 +3078,7 @@ static void mxf_deinit(AVFormatContext *s)
av_freep(&mxf->index_entries);
av_freep(&mxf->body_partition_offset);
- if (mxf->timecode_track) {
- av_freep(&mxf->timecode_track->priv_data);
- av_freep(&mxf->timecode_track);
- }
+ av_freep(&mxf->timecode_track);
}
static int mxf_interleave_get_packet(AVFormatContext *s, AVPacket *out, int flush)