From: Andreas Rheinhardt Date: Sun, 18 Apr 2021 03:26:32 +0000 (+0200) Subject: avcodec/avcodec: Actually honour the documentation of subtitle_header X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=a1ed984e049c90122e80bd60c2028f9bb22cc31c;p=ffmpeg avcodec/avcodec: Actually honour the documentation of subtitle_header 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. Reviewed-by: James Almer Signed-off-by: Andreas Rheinhardt --- diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 760a98d8ef9..24f6922d4fb 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;