[FFmpeg-devel] [PATCH 09/17] avformat/mxfenc: Avoid allocation for timecode track
Tomas Härdin
tjoppen at acc.umu.se
Tue Nov 9 23:26:43 EET 2021
tis 2021-11-09 klockan 19:01 +0100 skrev Andreas Rheinhardt:
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
> libavformat/mxfenc.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
> index cf63340313..aa9857fcff 100644
> --- a/libavformat/mxfenc.c
> +++ b/libavformat/mxfenc.c
> @@ -421,6 +421,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)
> @@ -2712,9 +2713,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;
> @@ -3087,10 +3086,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)
Looks OK. We never have more than one timecode track.
/Tomas
More information about the ffmpeg-devel
mailing list