int *pfa_postreindex;
FFTContext ptwo_fft;
-
FFTComplex *tmp;
-
FFTComplex *twiddle_exptab;
- /* 0 - 18: fft15 twiddles, 19 - 20: fft5 twiddles */
- FFTComplex exptab[21];
+ DECLARE_ALIGNED(32, FFTComplex, exptab)[64];
+
+ /* 15-point FFT */
+ void (*fft15)(FFTComplex *out, FFTComplex *in, FFTComplex *exptab, ptrdiff_t stride);
+
+ /* PFA postrotate and exptab */
+ void (*postreindex)(FFTComplex *out, FFTComplex *in, FFTComplex *exp, int *lut, ptrdiff_t len8);
- /**
- * Calculate a full 2N -> N MDCT
- */
+ /* Calculate a full 2N -> N MDCT */
void (*mdct)(struct MDCT15Context *s, float *dst, const float *src, ptrdiff_t stride);
- /**
- * Calculate the middle half of the iMDCT
- */
+ /* Calculate the middle half of the iMDCT */
void (*imdct_half)(struct MDCT15Context *s, float *dst, const float *src,
- ptrdiff_t src_stride, float scale);
+ ptrdiff_t stride);
} MDCT15Context;
-/**
- * Init an (i)MDCT of the length 2 * 15 * (2^N)
- */
+/* Init an (i)MDCT of the length 2 * 15 * (2^N) */
int ff_mdct15_init(MDCT15Context **ps, int inverse, int N, double scale);
-
-/**
- * Frees a context
- */
void ff_mdct15_uninit(MDCT15Context **ps);
+void ff_mdct15_init_x86(MDCT15Context *s);
+
#endif /* AVCODEC_MDCT15_H */