summaryrefslogtreecommitdiff
path: root/fftools/ffmpeg.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2022-05-09 12:58:08 +0200
committerAnton Khirnov <anton@khirnov.net>2022-07-23 11:53:19 +0200
commitdceccd4aebe92179f748ab71e048a927968c5b5a (patch)
treeb76d86bccdd3c06c61615232275647b096ba96f5 /fftools/ffmpeg.c
parent52fee96ae9ed34041718d238223a207e2c018dae (diff)
fftools/ffmpeg: move freeing 2pass input stats to a better place
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.
Diffstat (limited to 'fftools/ffmpeg.c')
-rw-r--r--fftools/ffmpeg.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
index 7b54280414..92a83c4253 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);
@@ -4359,9 +4361,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);