[FFmpeg-devel] [PATCH 2/2] avformat/avienc: add deinit function

Paul B Mahol onemda at gmail.com
Sat Oct 19 17:18:53 EEST 2019


LGTM

On 10/19/19, James Almer <jamrial at gmail.com> wrote:
> Fixes ticket #8302
>
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>  libavformat/avienc.c | 20 +++++++++++++++-----
>  1 file changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/libavformat/avienc.c b/libavformat/avienc.c
> index ac0f04c354..5f143bccce 100644
> --- a/libavformat/avienc.c
> +++ b/libavformat/avienc.c
> @@ -909,7 +909,7 @@ static int avi_write_trailer(AVFormatContext *s)
>      AVIContext *avi = s->priv_data;
>      AVIOContext *pb = s->pb;
>      int res = 0;
> -    int i, j, n, nb_frames;
> +    int i, n, nb_frames;
>      int64_t file_size;
>
>      for (i = 0; i < s->nb_streams; i++) {
> @@ -962,10 +962,6 @@ static int avi_write_trailer(AVFormatContext *s)
>
>      for (i = 0; i < s->nb_streams; i++) {
>          AVIStream *avist = s->streams[i]->priv_data;
> -        for (j = 0; j < avist->indexes.ents_allocated /
> AVI_INDEX_CLUSTER_SIZE; j++)
> -            av_freep(&avist->indexes.cluster[j]);
> -        av_freep(&avist->indexes.cluster);
> -        avist->indexes.ents_allocated = avist->indexes.entry = 0;
>          if (pb->seekable & AVIO_SEEKABLE_NORMAL) {
>              avio_seek(pb, avist->frames_hdr_strm + 4, SEEK_SET);
>              avio_wl32(pb, avist->max_size);
> @@ -975,6 +971,19 @@ static int avi_write_trailer(AVFormatContext *s)
>      return res;
>  }
>
> +static void avi_deinit(AVFormatContext *s)
> +{
> +    for (int i = 0; i < s->nb_streams; i++) {
> +        AVIStream *avist = s->streams[i]->priv_data;
> +        if (!avist)
> +            continue;
> +        for (int j = 0; j < avist->indexes.ents_allocated /
> AVI_INDEX_CLUSTER_SIZE; j++)
> +            av_freep(&avist->indexes.cluster[j]);
> +        av_freep(&avist->indexes.cluster);
> +        avist->indexes.ents_allocated = avist->indexes.entry = 0;
> +    }
> +}
> +
>  #define OFFSET(x) offsetof(AVIContext, x)
>  #define ENC AV_OPT_FLAG_ENCODING_PARAM
>  static const AVOption options[] = {
> @@ -999,6 +1008,7 @@ AVOutputFormat ff_avi_muxer = {
>      .audio_codec    = CONFIG_LIBMP3LAME ? AV_CODEC_ID_MP3 :
> AV_CODEC_ID_AC3,
>      .video_codec    = AV_CODEC_ID_MPEG4,
>      .init           = avi_init,
> +    .deinit         = avi_deinit,
>      .write_header   = avi_write_header,
>      .write_packet   = avi_write_packet,
>      .write_trailer  = avi_write_trailer,
> --
> 2.23.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list