aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-12-14 20:05:54 +0100
committerAnton Khirnov <anton@khirnov.net>2023-12-18 08:50:02 +0100
commit244d2fcc49452f3c5aa0f4899c7c0c03ccc6a69e (patch)
tree605b97571e0a5a6d9ac238b6c70db57f19ae659b
parent6cb231e3789679396e7c4b4093d182b655de0759 (diff)
downloadffmpeg-244d2fcc49452f3c5aa0f4899c7c0c03ccc6a69e.tar.gz
fftools/ffmpeg_mux: deduplicate uniniting EncStats
-rw-r--r--fftools/ffmpeg_mux.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/fftools/ffmpeg_mux.c b/fftools/ffmpeg_mux.c
index 88ce3cd60c..357f34172f 100644
--- a/fftools/ffmpeg_mux.c
+++ b/fftools/ffmpeg_mux.c
@@ -773,6 +773,13 @@ int of_write_trailer(OutputFile *of)
return mux_result;
}
+static void enc_stats_uninit(EncStats *es)
+{
+ for (int i = 0; i < es->nb_components; i++)
+ av_freep(&es->components[i].str);
+ av_freep(&es->components);
+}
+
static void ost_free(OutputStream **post)
{
OutputStream *ost = *post;
@@ -818,17 +825,9 @@ static void ost_free(OutputStream **post)
av_freep(&ost->enc_ctx->stats_in);
avcodec_free_context(&ost->enc_ctx);
- for (int i = 0; i < ost->enc_stats_pre.nb_components; i++)
- av_freep(&ost->enc_stats_pre.components[i].str);
- av_freep(&ost->enc_stats_pre.components);
-
- for (int i = 0; i < ost->enc_stats_post.nb_components; i++)
- av_freep(&ost->enc_stats_post.components[i].str);
- av_freep(&ost->enc_stats_post.components);
-
- for (int i = 0; i < ms->stats.nb_components; i++)
- av_freep(&ms->stats.components[i].str);
- av_freep(&ms->stats.components);
+ enc_stats_uninit(&ost->enc_stats_pre);
+ enc_stats_uninit(&ost->enc_stats_post);
+ enc_stats_uninit(&ms->stats);
av_freep(post);
}