45 #include "opus_defines.h"
52 const kiss_fft_state *kfft[4];
53 const kiss_twiddle_scalar * OPUS_RESTRICT trig;
56 #if defined(HAVE_ARM_NE10)
57 #include "arm/mdct_arm.h"
61 int clt_mdct_init(mdct_lookup *l,
int N,
int maxshift,
int arch);
62 void clt_mdct_clear(mdct_lookup *l,
int arch);
65 void clt_mdct_forward_c(
const mdct_lookup *l, kiss_fft_scalar *in,
66 kiss_fft_scalar * OPUS_RESTRICT out,
67 const opus_val16 *window,
int overlap,
68 int shift,
int stride,
int arch);
72 void clt_mdct_backward_c(
const mdct_lookup *l, kiss_fft_scalar *in,
73 kiss_fft_scalar * OPUS_RESTRICT out,
74 const opus_val16 * OPUS_RESTRICT window,
75 int overlap,
int shift,
int stride,
int arch);
77 #if !defined(OVERRIDE_OPUS_MDCT)
79 #if defined(OPUS_HAVE_RTCD) && defined(HAVE_ARM_NE10)
81 extern void (*
const CLT_MDCT_FORWARD_IMPL[OPUS_ARCHMASK+1])(
82 const mdct_lookup *l, kiss_fft_scalar *in,
83 kiss_fft_scalar * OPUS_RESTRICT out,
const opus_val16 *window,
84 int overlap,
int shift,
int stride,
int arch);
86 #define clt_mdct_forward(_l, _in, _out, _window, _overlap, _shift, _stride, _arch) \
87 ((*CLT_MDCT_FORWARD_IMPL[(arch)&OPUS_ARCHMASK])(_l, _in, _out, \
88 _window, _overlap, _shift, \
91 extern void (*
const CLT_MDCT_BACKWARD_IMPL[OPUS_ARCHMASK+1])(
92 const mdct_lookup *l, kiss_fft_scalar *in,
93 kiss_fft_scalar * OPUS_RESTRICT out,
const opus_val16 *window,
94 int overlap,
int shift,
int stride,
int arch);
96 #define clt_mdct_backward(_l, _in, _out, _window, _overlap, _shift, _stride, _arch) \
97 (*CLT_MDCT_BACKWARD_IMPL[(arch)&OPUS_ARCHMASK])(_l, _in, _out, \
98 _window, _overlap, _shift, \
103 #define clt_mdct_forward(_l, _in, _out, _window, _overlap, _shift, _stride, _arch) \
104 clt_mdct_forward_c(_l, _in, _out, _window, _overlap, _shift, _stride, _arch)
106 #define clt_mdct_backward(_l, _in, _out, _window, _overlap, _shift, _stride, _arch) \
107 clt_mdct_backward_c(_l, _in, _out, _window, _overlap, _shift, _stride, _arch)