changeset 6782:781bfad6e40e libavcodec

Simplify do_voice(). Patch by Vitor Sessak (vitor1001 gmail com)
author astrange
date Sun, 11 May 2008 18:47:16 +0000
parents 2f505f532aa8
children df0893f4fd86
files ra144.c
diffstat 1 files changed, 8 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/ra144.c	Sun May 11 18:43:11 2008 +0000
+++ b/ra144.c	Sun May 11 18:47:16 2008 +0000
@@ -106,28 +106,21 @@
 static void do_voice(int *a1, int *a2)
 {
     int buffer[10];
-    int *b1, *b2;
+    int *b1 = buffer;
+    int *b2 = a2;
     int x, y;
-    int *ptr;
-
-    b1 = buffer;
-    b2 = a2;
 
     for (x=0; x < 10; x++) {
-        b1[x] = (*a1) << 4;
+        b1[x] = a1[x] << 4;
+
+        for (y=0; y < x; y++)
+            b1[y] = ((a1[x] * (b2[x-y-1])) >> 12) + b2[y];
 
-        if(x > 0) {
-            ptr = b2 + x;
-            for (y=0; y <= x - 1; y++)
-                b1[y] = (((*a1) * (*(--ptr))) >> 12) + b2[y];
-        }
         FFSWAP(int *, b1, b2);
-        a1++;
     }
-    ptr = a2 + 10;
 
-    while (ptr > a2)
-        (*a2++) >>= 4;
+    for (x=0; x < 10; x++)
+        a2[x] >>= 4;
 }