From 30bf54b9f3ac4684470a33014665f98641a33422 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Fri, 28 Dec 2018 18:45:55 +0100 Subject: avfilter/af_afir: introduce uninit_segment() and use it --- libavfilter/af_afir.c | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) (limited to 'libavfilter/af_afir.c') diff --git a/libavfilter/af_afir.c b/libavfilter/af_afir.c index ca0c8811a4..dc32b92dc7 100644 --- a/libavfilter/af_afir.c +++ b/libavfilter/af_afir.c @@ -593,39 +593,44 @@ static int config_output(AVFilterLink *outlink) return 0; } -static av_cold void uninit(AVFilterContext *ctx) +static void uninit_segment(AVFilterContext *ctx, AudioFIRSegment *seg) { AudioFIRContext *s = ctx->priv; - int ch; - if (s->seg.coeff) { - for (ch = 0; ch < s->nb_coef_channels; ch++) { - av_freep(&s->seg.coeff[ch]); + if (seg->coeff) { + for (int ch = 0; ch < s->nb_coef_channels; ch++) { + av_freep(&seg->coeff[ch]); } } - av_freep(&s->seg.coeff); + av_freep(&seg->coeff); - if (s->seg.rdft) { - for (ch = 0; ch < s->nb_channels; ch++) { - av_rdft_end(s->seg.rdft[ch]); + if (seg->rdft) { + for (int ch = 0; ch < s->nb_channels; ch++) { + av_rdft_end(seg->rdft[ch]); } } - av_freep(&s->seg.rdft); + av_freep(&seg->rdft); - if (s->seg.irdft) { - for (ch = 0; ch < s->nb_channels; ch++) { - av_rdft_end(s->seg.irdft[ch]); + if (seg->irdft) { + for (int ch = 0; ch < s->nb_channels; ch++) { + av_rdft_end(seg->irdft[ch]); } } - av_freep(&s->seg.irdft); + av_freep(&seg->irdft); - av_frame_free(&s->in[1]); + av_frame_free(&seg->block); + av_frame_free(&seg->sum); + av_frame_free(&seg->buffer); +} + +static av_cold void uninit(AVFilterContext *ctx) +{ + AudioFIRContext *s = ctx->priv; - av_frame_free(&s->seg.block); - av_frame_free(&s->seg.sum); - av_frame_free(&s->seg.buffer); + uninit_segment(ctx, &s->seg); av_freep(&s->fdsp); + av_frame_free(&s->in[1]); for (int i = 0; i < ctx->nb_outputs; i++) av_freep(&ctx->output_pads[i].name); -- cgit v1.2.3