From a09411a0ee029687d3a80fb17149406513b2d2e5 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Mon, 12 Nov 2018 09:27:08 +0100 Subject: [PATCH] avfilter/af_afftfilt: calculate all channels FFT values upfront --- libavfilter/af_afftfilt.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libavfilter/af_afftfilt.c b/libavfilter/af_afftfilt.c index d5e3b7f..150f8ed 100644 --- a/libavfilter/af_afftfilt.c +++ b/libavfilter/af_afftfilt.c @@ -289,15 +289,18 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) for (ch = 0; ch < inlink->channels; ch++) { FFTComplex *fft_data = s->fft_data[ch]; + + av_fft_permute(s->fft, fft_data); + av_fft_calc(s->fft, fft_data); + } + + for (ch = 0; ch < inlink->channels; ch++) { + FFTComplex *fft_data = s->fft_data[ch]; FFTComplex *fft_temp = s->fft_temp[ch]; float *buf = (float *)s->buffer->extended_data[ch]; int x; - values[VAR_CHANNEL] = ch; - av_fft_permute(s->fft, fft_data); - av_fft_calc(s->fft, fft_data); - for (n = 0; n <= window_size / 2; n++) { float fr, fi; -- 2.7.4