diff options
author | Paul B Mahol <onemda@gmail.com> | 2023-11-04 14:34:18 +0100 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2023-11-04 15:39:23 +0100 |
commit | 43226efc2188ec2cd16d3b9c4e189bcde1a2a0e5 (patch) | |
tree | e2db1f9bac0842ceee0ce397443c4e249f0a1d11 /libavfilter/af_adynamicequalizer.c | |
parent | 3f890fbfd9014843c51408c8f7ab3ba4aef7d354 (diff) | |
download | ffmpeg-43226efc2188ec2cd16d3b9c4e189bcde1a2a0e5.tar.gz |
avfilter/af_adynamicequalizer: add new structure to hold filtering state
Diffstat (limited to 'libavfilter/af_adynamicequalizer.c')
-rw-r--r-- | libavfilter/af_adynamicequalizer.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/libavfilter/af_adynamicequalizer.c b/libavfilter/af_adynamicequalizer.c index 2c674cbd7c..a84e8e5f57 100644 --- a/libavfilter/af_adynamicequalizer.c +++ b/libavfilter/af_adynamicequalizer.c @@ -23,6 +23,19 @@ #include "audio.h" #include "formats.h" +typedef struct ChannelContext { + double fa_double[3], fm_double[3]; + double dstate_double[2]; + double fstate_double[2]; + double gain_double; + double threshold_double; + float fa_float[3], fm_float[3]; + float dstate_float[2]; + float fstate_float[2]; + float gain_float; + float threshold_float; +} ChannelContext; + typedef struct AudioDynamicEqualizerContext { const AVClass *class; @@ -52,7 +65,7 @@ typedef struct AudioDynamicEqualizerContext { double da_double[3], dm_double[3]; float da_float[3], dm_float[3]; - AVFrame *state; + ChannelContext *cc; } AudioDynamicEqualizerContext; static int query_formats(AVFilterContext *ctx) @@ -96,8 +109,8 @@ static int config_input(AVFilterLink *inlink) AudioDynamicEqualizerContext *s = ctx->priv; s->format = inlink->format; - s->state = ff_get_audio_buffer(inlink, 16); - if (!s->state) + s->cc = av_calloc(inlink->ch_layout.nb_channels, sizeof(*s->cc)); + if (!s->cc) return AVERROR(ENOMEM); switch (s->format) { @@ -148,7 +161,7 @@ static av_cold void uninit(AVFilterContext *ctx) { AudioDynamicEqualizerContext *s = ctx->priv; - av_frame_free(&s->state); + av_freep(&s->cc); } #define OFFSET(x) offsetof(AudioDynamicEqualizerContext, x) |