summaryrefslogtreecommitdiff
path: root/libavutil/arm/float_dsp_init_vfp.c
diff options
context:
space:
mode:
authorBen Avison <bavison@riscosopen.org>2014-07-11 00:12:33 +0100
committerMartin Storsjö <martin@martin.st>2014-07-18 01:34:31 +0300
commit5edad2c4a1f46bcc56be755af86ab355c2f1b37f (patch)
tree56fbead80b0cb998e2bb8c8f593fc5e4350d6683 /libavutil/arm/float_dsp_init_vfp.c
parent87552d54d3337c3241e8a9e1a05df16eaa821496 (diff)
armv6: Accelerate vector_fmul_window
I benchmarked the result by measuring the number of gperftools samples that hit anywhere in the AAC decoder (starting from aac_decode_frame()) or specifically in vector_fmul_window_c() / ff_vector_fmul_window_vfp() for the same sample AAC stream: Before After Mean StdDev Mean StdDev Confidence Change Audio decode 1598.2 47.4 1529.2 25.4 100.0% +4.5% vector_fmul_window 244.0 22.1 188.9 22.3 100.0% +29.2% Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavutil/arm/float_dsp_init_vfp.c')
-rw-r--r--libavutil/arm/float_dsp_init_vfp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/libavutil/arm/float_dsp_init_vfp.c b/libavutil/arm/float_dsp_init_vfp.c
index 31cb6aea60..f44020e0fd 100644
--- a/libavutil/arm/float_dsp_init_vfp.c
+++ b/libavutil/arm/float_dsp_init_vfp.c
@@ -26,12 +26,17 @@
void ff_vector_fmul_vfp(float *dst, const float *src0, const float *src1,
int len);
+void ff_vector_fmul_window_vfp(float *dst, const float *src0,
+ const float *src1, const float *win, int len);
+
void ff_vector_fmul_reverse_vfp(float *dst, const float *src0,
const float *src1, int len);
av_cold void ff_float_dsp_init_vfp(AVFloatDSPContext *fdsp, int cpu_flags)
{
- if (!have_vfpv3(cpu_flags))
+ if (!have_vfpv3(cpu_flags)) {
fdsp->vector_fmul = ff_vector_fmul_vfp;
+ fdsp->vector_fmul_window = ff_vector_fmul_window_vfp;
+ }
fdsp->vector_fmul_reverse = ff_vector_fmul_reverse_vfp;
}