diff options
author | Måns Rullgård <mans@mansr.com> | 2010-04-10 16:27:56 +0000 |
---|---|---|
committer | Måns Rullgård <mans@mansr.com> | 2010-04-10 16:27:56 +0000 |
commit | e73d1a5efc2301d20e2f585f551c83fd248a2472 (patch) | |
tree | 59b718a64d076eff588820f5899003b25f084bc7 /libavcodec/arm/fft_init_arm.c | |
parent | f462ed1f82e4be18876786e86f472ddf7cd41fbc (diff) | |
download | ffmpeg-e73d1a5efc2301d20e2f585f551c83fd248a2472.tar.gz |
ARM: NEON optimised synth_filter_float
2.7x faster DCA decoding on Cortex-A8
Originally committed as revision 22828 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/arm/fft_init_arm.c')
-rw-r--r-- | libavcodec/arm/fft_init_arm.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libavcodec/arm/fft_init_arm.c b/libavcodec/arm/fft_init_arm.c index dfcd968c94..bde12400de 100644 --- a/libavcodec/arm/fft_init_arm.c +++ b/libavcodec/arm/fft_init_arm.c @@ -19,6 +19,7 @@ */ #include "libavcodec/fft.h" +#include "libavcodec/synth_filter.h" void ff_fft_permute_neon(FFTContext *s, FFTComplex *z); void ff_fft_calc_neon(FFTContext *s, FFTComplex *z); @@ -29,6 +30,12 @@ void ff_mdct_calc_neon(FFTContext *s, FFTSample *output, const FFTSample *input) void ff_rdft_calc_neon(struct RDFTContext *s, FFTSample *z); +void ff_synth_filter_float_neon(FFTContext *imdct, + float *synth_buf_ptr, int *synth_buf_offset, + float synth_buf2[32], const float window[512], + float out[32], const float in[32], + float scale, float bias); + av_cold void ff_fft_init_arm(FFTContext *s) { if (HAVE_NEON) { @@ -48,3 +55,11 @@ av_cold void ff_rdft_init_arm(RDFTContext *s) s->rdft_calc = ff_rdft_calc_neon; } #endif + +#if CONFIG_DCA_DECODER +av_cold void ff_synth_filter_init_arm(SynthFilterContext *s) +{ + if (HAVE_NEON) + s->synth_filter_float = ff_synth_filter_float_neon; +} +#endif |