summaryrefslogtreecommitdiff
path: root/libavcodec/mdct_template.c
diff options
context:
space:
mode:
authorDiego Biurrun <diego@biurrun.de>2016-01-30 14:45:28 +0100
committerDiego Biurrun <diego@biurrun.de>2016-03-01 10:18:28 +0100
commit1a094af638281295bf087945923d258b5acd1ab1 (patch)
tree93ec951fe9d688564fcc32917f94b5077bb26d8f /libavcodec/mdct_template.c
parent4d13bcceb9a1820f8e9b2c89e00816d3db41b716 (diff)
fft: Split MDCT bits off from FFT
Diffstat (limited to 'libavcodec/mdct_template.c')
-rw-r--r--libavcodec/mdct_template.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/libavcodec/mdct_template.c b/libavcodec/mdct_template.c
index bad890ef7f..5b3a6ff5aa 100644
--- a/libavcodec/mdct_template.c
+++ b/libavcodec/mdct_template.c
@@ -56,6 +56,26 @@ av_cold int ff_mdct_init(FFTContext *s, int nbits, int inverse, double scale)
if (ff_fft_init(s, s->mdct_bits - 2, inverse) < 0)
goto fail;
+ s->imdct_calc = ff_imdct_calc_c;
+ s->imdct_half = ff_imdct_half_c;
+ s->mdct_calc = ff_mdct_calc_c;
+
+#if FFT_FLOAT
+ if (ARCH_AARCH64)
+ ff_mdct_init_aarch64(s);
+ if (ARCH_ARM)
+ ff_mdct_init_arm(s);
+ if (ARCH_PPC)
+ ff_mdct_init_ppc(s);
+ if (ARCH_X86)
+ ff_mdct_init_x86(s);
+ s->mdct_calcw = s->mdct_calc;
+#else
+ s->mdct_calcw = ff_mdct_calcw_c;
+ if (ARCH_ARM)
+ ff_mdct_fixed_init_arm(s);
+#endif
+
s->tcos = av_malloc(n/2 * sizeof(FFTSample));
if (!s->tcos)
goto fail;