diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-05-03 05:37:15 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-05-06 05:19:49 +0200 |
commit | 0df18f29ae218f30b3ecff7c930176b8ebee56aa (patch) | |
tree | 1e522d0a96077f834642c8127f464ceb09aaf783 /libavfilter/af_afir.c | |
parent | 767f66ea5d96eedcacbffa6815bd72cdeb36d17a (diff) | |
download | ffmpeg-0df18f29ae218f30b3ecff7c930176b8ebee56aa.tar.gz |
avfilter/af_afir: Only keep DSP stuff in header
Only the AudioFIRDSPContext and the functions for its initialization
are needed outside of lavfi/af_afir.c.
Also rename the header to af_afirdsp.h to reflect the change.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavfilter/af_afir.c')
-rw-r--r-- | libavfilter/af_afir.c | 71 |
1 files changed, 70 insertions, 1 deletions
diff --git a/libavfilter/af_afir.c b/libavfilter/af_afir.c index 72e77eda19..d7ae468428 100644 --- a/libavfilter/af_afir.c +++ b/libavfilter/af_afir.c @@ -30,8 +30,11 @@ #include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/float_dsp.h" +#include "libavutil/frame.h" #include "libavutil/intreadwrite.h" +#include "libavutil/log.h" #include "libavutil/opt.h" +#include "libavutil/rational.h" #include "libavutil/xga_font_data.h" #include "audio.h" @@ -39,7 +42,73 @@ #include "filters.h" #include "formats.h" #include "internal.h" -#include "af_afir.h" +#include "af_afirdsp.h" + +typedef struct AudioFIRSegment { + int nb_partitions; + int part_size; + int block_size; + int fft_length; + int coeff_size; + int input_size; + int input_offset; + + int *output_offset; + int *part_index; + + AVFrame *sumin; + AVFrame *sumout; + AVFrame *blockin; + AVFrame *blockout; + AVFrame *buffer; + AVFrame *coeff; + AVFrame *input; + AVFrame *output; + + AVTXContext **tx, **itx; + av_tx_fn tx_fn, itx_fn; +} AudioFIRSegment; + +typedef struct AudioFIRContext { + const AVClass *class; + + float wet_gain; + float dry_gain; + float length; + int gtype; + float ir_gain; + int ir_format; + float max_ir_len; + int response; + int w, h; + AVRational frame_rate; + int ir_channel; + int minp; + int maxp; + int nb_irs; + int selir; + + float gain; + + int eof_coeffs[32]; + int have_coeffs; + int nb_taps; + int nb_channels; + int nb_coef_channels; + int one2many; + + AudioFIRSegment seg[1024]; + int nb_segments; + + AVFrame *in; + AVFrame *ir[32]; + AVFrame *video; + int min_part_size; + int64_t pts; + + AudioFIRDSPContext afirdsp; + AVFloatDSPContext *fdsp; +} AudioFIRContext; static void fcmul_add_c(float *sum, const float *t, const float *c, ptrdiff_t len) { |