#include "formats.h"
#include "internal.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 *sum;
+ AVFrame *block;
+ AVFrame *buffer;
+ AVFrame *coeff;
+ AVFrame *input;
+ AVFrame *output;
+
+ RDFTContext **rdft, **irdft;
+} AudioFIRSegment;
+
+typedef struct AudioFIRDSPContext {
+ void (*fcmul_add)(float *sum, const float *t, const float *c,
+ ptrdiff_t len);
+} AudioFIRDSPContext;
+
typedef struct AudioFIRContext {
const AVClass *class;
int eof_coeffs;
int have_coeffs;
int nb_taps;
- int part_size;
- int part_index;
- int coeff_size;
- int block_size;
- int nb_partitions;
int nb_channels;
- int fft_length;
int nb_coef_channels;
int one2many;
- int nb_samples;
- RDFTContext **rdft, **irdft;
- float **sum;
- float **block;
- FFTComplex **coeff;
+ AudioFIRSegment seg[1024];
+ int nb_segments;
AVFrame *in[2];
- AVFrame *buffer;
AVFrame *video;
+ int min_part_size;
int64_t pts;
- int index;
+ AudioFIRDSPContext afirdsp;
AVFloatDSPContext *fdsp;
- void (*fcmul_add)(float *sum, const float *t, const float *c,
- ptrdiff_t len);
+
} AudioFIRContext;
-void ff_afir_init_x86(AudioFIRContext *s);
+void ff_afir_init(AudioFIRDSPContext *s);
+void ff_afir_init_x86(AudioFIRDSPContext *s);
#endif /* AVFILTER_AFIR_H */