Go to the documentation of this file.
42 s->exptab[60].re =
s->exptab[60].im =
s->exptab[19].re;
43 s->exptab[61].re =
s->exptab[61].im =
s->exptab[19].im;
44 s->exptab[62].re =
s->exptab[62].im =
s->exptab[20].re;
45 s->exptab[63].re =
s->exptab[63].im =
s->exptab[20].im;
48 for (k = 0; k < 5; k++) {
49 tmp[6*k + 0] =
s->exptab[k + 0];
50 tmp[6*k + 2] =
s->exptab[k + 5];
51 tmp[6*k + 4] =
s->exptab[k + 10];
53 tmp[6*k + 1] =
s->exptab[2 * (k + 0)];
54 tmp[6*k + 3] =
s->exptab[2 * (k + 5)];
55 tmp[6*k + 5] =
s->exptab[2 * k + 5 ];
58 for (k = 0; k < 6; k++) {
60 {
tmp[6*1 + k].re,
tmp[6*1 + k].re },
61 {
tmp[6*2 + k].re,
tmp[6*2 + k].re },
62 {
tmp[6*3 + k].re,
tmp[6*3 + k].re },
63 {
tmp[6*4 + k].re,
tmp[6*4 + k].re },
64 {
tmp[6*1 + k].im, -
tmp[6*1 + k].im },
65 {
tmp[6*2 + k].im, -
tmp[6*2 + k].im },
66 {
tmp[6*3 + k].im, -
tmp[6*3 + k].im },
67 {
tmp[6*4 + k].im, -
tmp[6*4 + k].im },
69 memcpy(
s->exptab + 8*k, ac_exp, 8*
sizeof(
FFTComplex));
73 for (k = 0; k < 3; k++) {
75 {
tmp[2*k + 0].re, -
tmp[2*k + 0].im },
76 {
tmp[2*k + 0].im,
tmp[2*k + 0].re },
77 {
tmp[2*k + 1].re, -
tmp[2*k + 1].im },
78 {
tmp[2*k + 1].im,
tmp[2*k + 1].re },
80 memcpy(
s->exptab + 8*6 + 4*k, dc_exp, 4*
sizeof(
FFTComplex));
86 int adjust_twiddles = 0;
void ff_mdct15_postreindex_avx2(FFTComplex *out, FFTComplex *in, FFTComplex *exp, int *lut, ptrdiff_t len8)
#define EXTERNAL_AVX2_FAST(flags)
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
static void perm_twiddles(MDCT15Context *s)
static atomic_int cpu_flags
#define EXTERNAL_SSE3(flags)
av_cold void ff_mdct15_init_x86(MDCT15Context *s)
static struct @134 * exptab
void ff_mdct15_postreindex_sse3(FFTComplex *out, FFTComplex *in, FFTComplex *exp, int *lut, ptrdiff_t len8)
void ff_fft15_avx(FFTComplex *out, FFTComplex *in, FFTComplex *exptab, ptrdiff_t stride)
#define EXTERNAL_AVX(flags)