OSDN Git Service

Simplify rms()
authorVitor Sessak <vitor1001@gmail.com>
Sat, 24 May 2008 09:19:21 +0000 (09:19 +0000)
committerVitor Sessak <vitor1001@gmail.com>
Sat, 24 May 2008 09:19:21 +0000 (09:19 +0000)
Originally committed as revision 13276 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/ra144.c

index 07431bf..e0b43c1 100644 (file)
@@ -181,30 +181,24 @@ static void final(const short *i1, const short *i2,
 
 static unsigned int rms(const int *data, int f)
 {
-    const int *c;
     int x;
-    unsigned int res;
-    int b;
+    unsigned int res = 0x10000;
+    int b = 0;
 
-    c = data;
-    b = 0;
-    res = 0x10000;
     for (x=0; x<10; x++) {
-        res = (((0x1000000 - (*c) * (*c)) >> 12) * res) >> 12;
+        res = (((0x1000000 - (*data) * (*data)) >> 12) * res) >> 12;
 
         if (res == 0)
             return 0;
 
-        if (res <= 0x3fff) {
-            while (res <= 0x3fff) {
-                b++;
-                res <<= 2;
-            }
-        } else {
             if (res > 0x10000)
                 return 0; /* We're screwed, might as well go out with a bang. :P */
+
+        while (res <= 0x3fff) {
+            b++;
+            res <<= 2;
         }
-        c++;
+        data++;
     }
 
     if (res > 0)