Mercurial > libavcodec.hg
diff dsputil.c @ 7203:87b1dfb5a98d libavcodec
Add several vector functions used by Monkey's Audio decoder to dsputil
author | kostya |
---|---|
date | Sun, 06 Jul 2008 06:06:55 +0000 |
parents | e88e719b5e77 |
children | 7f3d6509628b |
line wrap: on
line diff
--- a/dsputil.c Sat Jul 05 18:43:24 2008 +0000 +++ b/dsputil.c Sun Jul 06 06:06:55 2008 +0000 @@ -3944,6 +3944,28 @@ } } +static void add_int16_c(int16_t * v1, int16_t * v2, int order) +{ + while (order--) + *v1++ += *v2++; +} + +static void sub_int16_c(int16_t * v1, int16_t * v2, int order) +{ + while (order--) + *v1++ -= *v2++; +} + +static int32_t scalarproduct_int16_c(int16_t * v1, int16_t * v2, int order, int shift) +{ + int res = 0; + + while (order--) + res += (*v1++ * *v2++) >> shift; + + return res; +} + #define W0 2048 #define W1 2841 /* 2048*sqrt (2)*cos (1*pi/16) */ #define W2 2676 /* 2048*sqrt (2)*cos (2*pi/16) */ @@ -4429,6 +4451,9 @@ c->vector_fmul_reverse = vector_fmul_reverse_c; c->vector_fmul_add_add = ff_vector_fmul_add_add_c; c->float_to_int16 = ff_float_to_int16_c; + c->add_int16 = add_int16_c; + c->sub_int16 = sub_int16_c; + c->scalarproduct_int16 = scalarproduct_int16_c; c->shrink[0]= ff_img_copy_plane; c->shrink[1]= ff_shrink22;