diff ra144.c @ 6850:521e1b55fc12 libavcodec

Simplify rms()
author vitor
date Sat, 24 May 2008 09:19:21 +0000
parents 3feec67125d8
children c225307f241d
line wrap: on
line diff
--- a/ra144.c	Sat May 24 09:17:30 2008 +0000
+++ b/ra144.c	Sat May 24 09:19:21 2008 +0000
@@ -181,30 +181,24 @@
 
 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)