aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/arm/dsputil_neon.c
diff options
context:
space:
mode:
authorMåns Rullgård <mans@mansr.com>2009-09-22 00:48:48 +0000
committerMåns Rullgård <mans@mansr.com>2009-09-22 00:48:48 +0000
commit1dee3e97c6971ac78404e5dd43b28c8fb7edbb39 (patch)
tree27722e6d0d5366f7d78124a2dca1f98b37672541 /libavcodec/arm/dsputil_neon.c
parent42d3fbb3f454cbc45a15213b0728cd49c189b59a (diff)
downloadffmpeg-1dee3e97c6971ac78404e5dd43b28c8fb7edbb39.tar.gz
ARM: NEON optimisations for some dsputil functions
NEON versions of the following functions are added: vector_fmul_scalar vector_fmul_sv_scalar sv_fmul_scalar butterflies_float Originally committed as revision 19957 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/arm/dsputil_neon.c')
-rw-r--r--libavcodec/arm/dsputil_neon.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/libavcodec/arm/dsputil_neon.c b/libavcodec/arm/dsputil_neon.c
index 67315297df..03e17466b6 100644
--- a/libavcodec/arm/dsputil_neon.c
+++ b/libavcodec/arm/dsputil_neon.c
@@ -157,6 +157,17 @@ void ff_vector_fmul_neon(float *dst, const float *src, int len);
void ff_vector_fmul_window_neon(float *dst, const float *src0,
const float *src1, const float *win,
float add_bias, int len);
+void ff_vector_fmul_scalar_neon(float *dst, const float *src, float mul,
+ int len);
+void ff_vector_fmul_sv_scalar_2_neon(float *dst, const float *src,
+ const float **vp, float mul, int len);
+void ff_vector_fmul_sv_scalar_4_neon(float *dst, const float *src,
+ const float **vp, float mul, int len);
+void ff_sv_fmul_scalar_2_neon(float *dst, const float **vp, float mul,
+ int len);
+void ff_sv_fmul_scalar_4_neon(float *dst, const float **vp, float mul,
+ int len);
+void ff_butterflies_float_neon(float *v1, float *v2, int len);
void ff_float_to_int16_neon(int16_t *, const float *, long);
void ff_float_to_int16_interleave_neon(int16_t *, const float **, long, int);
@@ -269,6 +280,14 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx)
c->vector_fmul = ff_vector_fmul_neon;
c->vector_fmul_window = ff_vector_fmul_window_neon;
+ c->vector_fmul_scalar = ff_vector_fmul_scalar_neon;
+ c->butterflies_float = ff_butterflies_float_neon;
+
+ c->vector_fmul_sv_scalar[0] = ff_vector_fmul_sv_scalar_2_neon;
+ c->vector_fmul_sv_scalar[1] = ff_vector_fmul_sv_scalar_4_neon;
+
+ c->sv_fmul_scalar[0] = ff_sv_fmul_scalar_2_neon;
+ c->sv_fmul_scalar[1] = ff_sv_fmul_scalar_4_neon;
if (!(avctx->flags & CODEC_FLAG_BITEXACT)) {
c->float_to_int16 = ff_float_to_int16_neon;