The current placement of this free is historical - it used to be followed by avcodec_close(), since removed.
The proper place for freeing the stats is currently right before the encoder context itself is freed. --- fftools/ffmpeg.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 7496ca1dc6..f60013eace 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -588,6 +588,8 @@ static void ffmpeg_cleanup(int ret) av_dict_free(&ost->sws_dict); av_dict_free(&ost->swr_opts); + if (ost->enc_ctx) + av_freep(&ost->enc_ctx->stats_in); avcodec_free_context(&ost->enc_ctx); avcodec_parameters_free(&ost->ref_par); @@ -4351,9 +4353,6 @@ static int transcode(void) /* close each encoder */ for (i = 0; i < nb_output_streams; i++) { ost = output_streams[i]; - if (ost->encoding_needed) { - av_freep(&ost->enc_ctx->stats_in); - } total_packets_written += ost->packets_written; if (!ost->packets_written && (abort_on_flags & ABORT_ON_FLAG_EMPTY_OUTPUT_STREAM)) { av_log(NULL, AV_LOG_FATAL, "Empty output on stream %d.\n", i); -- 2.34.1 _______________________________________________ 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".