[FFmpeg-devel] [PATCH 10/54] avformat/av1dec: Simplify cleanup after read_header failure

James Almer jamrial at gmail.com
Thu Jun 17 05:27:34 EEST 2021


On 6/15/2021 8:31 PM, Andreas Rheinhardt wrote:
> by setting the FF_FMT_INIT_CLEANUP flag.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
>   libavformat/av1dec.c | 13 ++++---------
>   1 file changed, 4 insertions(+), 9 deletions(-)
> 
> diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c
> index 8ca804c2a3..f282477ca4 100644
> --- a/libavformat/av1dec.c
> +++ b/libavformat/av1dec.c
> @@ -77,17 +77,10 @@ static int read_header(AVFormatContext *s, const AVRational *framerate, AVBSFCon
>           return ret;
>   
>       ret = avcodec_parameters_copy((*bsf)->par_in, st->codecpar);
> -    if (ret < 0) {
> -        av_bsf_free(bsf);
> -        return ret;
> -    }
> -
> -    ret = av_bsf_init(*bsf);
>       if (ret < 0)
> -        av_bsf_free(bsf);
> -
> -    return ret;
> +        return ret;
>   
> +    return av_bsf_init(*bsf);

nit: I'd prefer if you keep the two ret < 0 checks with their 
corresponding return rets, and make the last line an explicit return 0 
(For whatever reason, av_bsf_init() doxy does not mention what values it 
returns).

>   }
>   
>   #define DEC AV_OPT_FLAG_DECODING_PARAM
> @@ -285,6 +278,7 @@ const AVInputFormat ff_av1_demuxer = {
>       .name           = "av1",
>       .long_name      = NULL_IF_CONFIG_SMALL("AV1 Annex B"),
>       .priv_data_size = sizeof(AnnexBContext),
> +    .flags_internal = FF_FMT_INIT_CLEANUP,
>       .read_probe     = annexb_probe,
>       .read_header    = annexb_read_header,
>       .read_packet    = annexb_read_packet,
> @@ -472,6 +466,7 @@ const AVInputFormat ff_obu_demuxer = {
>       .name           = "obu",
>       .long_name      = NULL_IF_CONFIG_SMALL("AV1 low overhead OBU"),
>       .priv_data_size = sizeof(ObuContext),
> +    .flags_internal = FF_FMT_INIT_CLEANUP,
>       .read_probe     = obu_probe,
>       .read_header    = obu_read_header,
>       .read_packet    = obu_read_packet,
> 



More information about the ffmpeg-devel mailing list