/* FFT computation */
+enum fft_permutation_type {
+ FF_FFT_PERM_DEFAULT,
+ FF_FFT_PERM_SWAP_LSBS,
+ FF_FFT_PERM_AVX,
+};
+
+enum mdct_permutation_type {
+ FF_MDCT_PERM_NONE,
+ FF_MDCT_PERM_INTERLEAVE,
+};
+
struct FFTContext {
int nbits;
int inverse;
void (*imdct_half)(struct FFTContext *s, FFTSample *output, const FFTSample *input);
void (*mdct_calc)(struct FFTContext *s, FFTSample *output, const FFTSample *input);
void (*mdct_calcw)(struct FFTContext *s, FFTDouble *output, const FFTSample *input);
- int fft_permutation;
-#define FF_FFT_PERM_DEFAULT 0
-#define FF_FFT_PERM_SWAP_LSBS 1
-#define FF_FFT_PERM_AVX 2
- int mdct_permutation;
-#define FF_MDCT_PERM_NONE 0
-#define FF_MDCT_PERM_INTERLEAVE 1
+ enum fft_permutation_type fft_permutation;
+ enum mdct_permutation_type mdct_permutation;
};
#if CONFIG_HARDCODED_TABLES
int ff_mdct_init(FFTContext *s, int nbits, int inverse, double scale);
void ff_mdct_end(FFTContext *s);
+void ff_mdct_init_aarch64(FFTContext *s);
+void ff_mdct_init_arm(FFTContext *s);
+void ff_mdct_init_ppc(FFTContext *s);
+void ff_mdct_init_x86(FFTContext *s);
+
+void ff_mdct_fixed_init_arm(FFTContext *s);
+
#endif /* AVCODEC_FFT_H */