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;