aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter/af_afir.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-05-03 05:37:15 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-05-06 05:19:49 +0200
commit0df18f29ae218f30b3ecff7c930176b8ebee56aa (patch)
tree1e522d0a96077f834642c8127f464ceb09aaf783 /libavfilter/af_afir.c
parent767f66ea5d96eedcacbffa6815bd72cdeb36d17a (diff)
downloadffmpeg-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.c71
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)
{