James Almer: > On 4/18/2021 11:00 PM, Andreas Rheinhardt wrote: >> 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.rheinha...@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; > > LGTM. Same should be done for extradata, it seems.
You mean adding documentation that avcodec_free_context() frees it despite the documentation saying that this doesn't happen for decoders? - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".