[FFmpeg-cvslog] r13277 - trunk/libavcodec/ra144.c

vitor subversion
Sat May 24 11:20:09 CEST 2008


Author: vitor
Date: Sat May 24 11:20:09 2008
New Revision: 13277

Log:
Simplify final()

Modified:
   trunk/libavcodec/ra144.c

Modified: trunk/libavcodec/ra144.c
==============================================================================
--- trunk/libavcodec/ra144.c	(original)
+++ trunk/libavcodec/ra144.c	Sat May 24 11:20:09 2008
@@ -145,38 +145,33 @@ static void add_wav(int n, int f, int m1
 static void final(const short *i1, const short *i2,
                   void *out, int *statbuf, int len)
 {
-    int x, sum, i;
-    int buffer[10];
-    short *ptr;
-    short *ptr2;
+    int x, i;
     unsigned short int work[50];
+    short *ptr = work;
 
     memcpy(work, statbuf,20);
     memcpy(work + 10, i2, len * 2);
 
-    for(i=0; i<10; i++)
-        buffer[9-i] = i1[i];
-
-    ptr2 = (ptr = work) + len;
+    for (i=0; i<len; i++) {
+        int sum = 0;
 
-    while (ptr < ptr2) {
-        for(sum=0, x=0; x<=9; x++)
-            sum += buffer[x] * (ptr[x]);
+        for(x=0; x<10; x++)
+            sum += i1[9-x] * ptr[x];
 
-        sum = sum >> 12;
-        x = ptr[10] - sum;
+        sum >>= 12;
 
-        if (x<-32768 || x>32767) {
+        if (ptr[10] - sum < -32768 || ptr[10] - sum > 32767) {
             memset(out, 0, len * 2);
             memset(statbuf, 0, 20);
             return;
         }
 
-        ptr[10] = x;
+        ptr[10] -= sum;
         ptr++;
     }
-    memcpy(out, ptr+10 - len, len * 2);
-    memcpy(statbuf, ptr, 20);
+
+    memcpy(out, work+10, len * 2);
+    memcpy(statbuf, work + 40, 20);
 }
 
 static unsigned int rms(const int *data, int f)




More information about the ffmpeg-cvslog mailing list