aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/arm/fft_init_arm.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-07-22 11:56:04 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-07-22 11:57:05 +0200
commit2305a6775dd6fe6e55f985b09b7a0741f001d76a (patch)
treed13b93f9d8d92643198385baf8279e17471ab01c /libavcodec/arm/fft_init_arm.c
parent3cab2280058c582102346a50a8a503216055bc2d (diff)
parentb63bb251ea6d6ba23295294e37a92625c0192206 (diff)
downloadffmpeg-2305a6775dd6fe6e55f985b09b7a0741f001d76a.tar.gz
Merge commit 'b63bb251ea6d6ba23295294e37a92625c0192206'
* commit 'b63bb251ea6d6ba23295294e37a92625c0192206': arm: Add VFP-accelerated version of imdct_half Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/arm/fft_init_arm.c')
-rw-r--r--libavcodec/arm/fft_init_arm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/libavcodec/arm/fft_init_arm.c b/libavcodec/arm/fft_init_arm.c
index fe0acc56bf..a000ea54e8 100644
--- a/libavcodec/arm/fft_init_arm.c
+++ b/libavcodec/arm/fft_init_arm.c
@@ -26,6 +26,8 @@
void ff_fft_permute_neon(FFTContext *s, FFTComplex *z);
void ff_fft_calc_neon(FFTContext *s, FFTComplex *z);
+void ff_imdct_half_vfp(FFTContext *s, FFTSample *output, const FFTSample *input);
+
void ff_imdct_calc_neon(FFTContext *s, FFTSample *output, const FFTSample *input);
void ff_imdct_half_neon(FFTContext *s, FFTSample *output, const FFTSample *input);
void ff_mdct_calc_neon(FFTContext *s, FFTSample *output, const FFTSample *input);
@@ -48,6 +50,13 @@ av_cold void ff_fft_init_arm(FFTContext *s)
{
int cpu_flags = av_get_cpu_flags();
+ if (have_vfp(cpu_flags)) {
+#if CONFIG_MDCT
+ if (!have_vfpv3(cpu_flags))
+ s->imdct_half = ff_imdct_half_vfp;
+#endif
+ }
+
if (have_neon(cpu_flags)) {
#if CONFIG_FFT
s->fft_permute = ff_fft_permute_neon;