comparison arm/dsputil_init_neon.c @ 11243:e71b0be9ac79 libavcodec

ARM: NEON scalarproduct_int16 and scalarproduct_and_madd_int16 Patch by Kostya, minor fixes by me.
author mru
date Mon, 22 Feb 2010 12:20:31 +0000
parents 5506cbb012b4
children 2a4dc3c0b012
comparison
equal deleted inserted replaced
11242:e934b635dec5 11243:e71b0be9ac79
225 void ff_float_to_int16_neon(int16_t *, const float *, long); 225 void ff_float_to_int16_neon(int16_t *, const float *, long);
226 void ff_float_to_int16_interleave_neon(int16_t *, const float **, long, int); 226 void ff_float_to_int16_interleave_neon(int16_t *, const float **, long, int);
227 227
228 void ff_vorbis_inverse_coupling_neon(float *mag, float *ang, int blocksize); 228 void ff_vorbis_inverse_coupling_neon(float *mag, float *ang, int blocksize);
229 229
230 int32_t ff_scalarproduct_int16_neon(int16_t *v1, int16_t *v2, int len,
231 int shift);
232 int32_t ff_scalarproduct_and_madd_int16_neon(int16_t *v1, int16_t *v2,
233 int16_t *v3, int len, int mul);
234
230 void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx) 235 void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx)
231 { 236 {
232 if (!avctx->lowres) { 237 if (!avctx->lowres) {
233 if (avctx->idct_algo == FF_IDCT_AUTO || 238 if (avctx->idct_algo == FF_IDCT_AUTO ||
234 avctx->idct_algo == FF_IDCT_SIMPLENEON) { 239 avctx->idct_algo == FF_IDCT_SIMPLENEON) {
404 c->float_to_int16_interleave = ff_float_to_int16_interleave_neon; 409 c->float_to_int16_interleave = ff_float_to_int16_interleave_neon;
405 } 410 }
406 411
407 if (CONFIG_VORBIS_DECODER) 412 if (CONFIG_VORBIS_DECODER)
408 c->vorbis_inverse_coupling = ff_vorbis_inverse_coupling_neon; 413 c->vorbis_inverse_coupling = ff_vorbis_inverse_coupling_neon;
414
415 c->scalarproduct_int16 = ff_scalarproduct_int16_neon;
416 c->scalarproduct_and_madd_int16 = ff_scalarproduct_and_madd_int16_neon;
409 } 417 }