[FFmpeg-devel] [PATCH 1/7] avcodec/avcodec: Actually honour the documentation of subtitle_header

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Thu Apr 22 20:24:30 EEST 2021


Andreas Rheinhardt:
> It is only supposed to be freed by libavcodec for decoders, yet
> avcodec_open2() always frees it on failure.
> Furthermore, avcodec_close() doesn't free it for decoders.
> Both of this has been changed.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
> This might be squashed with the next patch.
> 
>  libavcodec/avcodec.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
> index 760a98d8ef..24f6922d4f 100644
> --- a/libavcodec/avcodec.c
> +++ b/libavcodec/avcodec.c
> @@ -418,7 +418,8 @@ FF_ENABLE_DEPRECATION_WARNINGS
>  
>      av_dict_free(&tmp);
>      av_freep(&avctx->priv_data);
> -    av_freep(&avctx->subtitle_header);
> +    if (av_codec_is_decoder(avctx->codec))
> +        av_freep(&avctx->subtitle_header);
>  
>  #if FF_API_OLD_ENCDEC
>      av_frame_free(&avci->to_free);
> @@ -589,7 +590,9 @@ FF_DISABLE_DEPRECATION_WARNINGS
>          av_frame_free(&avctx->coded_frame);
>  FF_ENABLE_DEPRECATION_WARNINGS
>  #endif
> -    }
> +    } else if (av_codec_is_decoder(avctx->codec))
> +        av_freep(&avctx->subtitle_header);
> +
>      avctx->codec = NULL;
>      avctx->active_thread_type = 0;
>  
> 
Ping for this patchset.

- Andreas


More information about the ffmpeg-devel mailing list