diff -ruN a/libavfilter/af_aformat.c b/libavfilter/af_aformat.c --- a/libavfilter/af_aformat.c 2020-06-15 12:54:24.000000000 -0600 +++ b/libavfilter/af_aformat.c 2020-07-10 09:24:01.659724729 -0600 @@ -112,6 +112,16 @@ return 0; } +#define DEL_FIELD(p,mem,fld) if( p->mem ) { av_freep(&p->mem->fld); av_freep(&p->mem); } + +static av_cold void uninit(AVFilterContext *ctx) +{ + AFormatContext *s = ctx->priv; + DEL_FIELD(s, formats, formats); + DEL_FIELD(s, sample_rates, formats); + DEL_FIELD(s, channel_layouts, channel_layouts); +} + static int query_formats(AVFilterContext *ctx) { AFormatContext *s = ctx->priv; @@ -149,6 +159,7 @@ .name = "aformat", .description = NULL_IF_CONFIG_SMALL("Convert the input audio to one of the specified formats."), .init = init, + .uninit = uninit, .query_formats = query_formats, .priv_size = sizeof(AFormatContext), .priv_class = &aformat_class,