avfilter/vf_avgblur: fix memory leaks if config_input() is called again

This commit is contained in:
Paul B Mahol 2022-02-10 09:18:36 +01:00
parent 9809f318ea
commit 9bdb476c40

View File

@ -187,12 +187,21 @@ static void build_lut(AVFilterContext *ctx, int max)
}
}
static av_cold void uninit(AVFilterContext *ctx)
{
AverageBlurContext *s = ctx->priv;
av_freep(&s->buffer);
}
static int config_input(AVFilterLink *inlink)
{
AVFilterContext *ctx = inlink->dst;
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format);
AverageBlurContext *s = ctx->priv;
uninit(ctx);
s->depth = desc->comp[0].depth;
s->max = 1 << s->depth;
s->planewidth[1] = s->planewidth[2] = AV_CEIL_RSHIFT(inlink->w, desc->log2_chroma_w);
@ -316,13 +325,6 @@ static int process_command(AVFilterContext *ctx, const char *cmd, const char *ar
return 0;
}
static av_cold void uninit(AVFilterContext *ctx)
{
AverageBlurContext *s = ctx->priv;
av_freep(&s->buffer);
}
static const AVFilterPad avgblur_inputs[] = {
{
.name = "default",