]> git.sesse.net Git - ffmpeg/commitdiff
Simplify ra144_decode_frame() by unrolling a senseless
authorVitor Sessak <vitor1001@gmail.com>
Wed, 21 May 2008 16:36:19 +0000 (16:36 +0000)
committerVitor Sessak <vitor1001@gmail.com>
Wed, 21 May 2008 16:36:19 +0000 (16:36 +0000)
loop.

Thanks mkhdor for suggesting this patch.

Originally committed as revision 13211 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/ra144.c

index b99ab1df3fa027d33dd7d3a97f24d7b801495516..6d0da4db1d2d3b377176da7c2f1ae657f6ec511a 100644 (file)
@@ -401,25 +401,14 @@ static int ra144_decode_frame(AVCodecContext * avctx,
     val = decodeval[get_bits(&gb, 5) << 1]; // Useless table entries?
     a = t_sqrt(val*glob->oldval) >> 12;
 
-    for (c=0; c < NBLOCKS; c++) {
-        if (c == (NBLOCKS - 1)) {
-            dec1(glob, glob->swapbuf1, glob->swapbuf2, 3, val);
-        } else {
-            if (c * 2 == (NBLOCKS - 2)) {
-                if (glob->oldval < val) {
-                    dec2(glob, glob->swapbuf1, glob->swapbuf2, 3, a, glob->swapbuf2alt, c);
-                } else {
-                    dec2(glob, glob->swapbuf1alt, glob->swapbuf2alt, 3, a, glob->swapbuf2, c);
-                }
-            } else {
-                if (c * 2 < (NBLOCKS - 2)) {
-                    dec2(glob, glob->swapbuf1alt, glob->swapbuf2alt, 3, glob->oldval, glob->swapbuf2, c);
-                } else {
-                    dec2(glob, glob->swapbuf1, glob->swapbuf2, 3, val, glob->swapbuf2alt, c);
-                }
-            }
-        }
+    dec2(glob, glob->swapbuf1alt, glob->swapbuf2alt, 3, glob->oldval, glob->swapbuf2, 0);
+    if (glob->oldval < val) {
+        dec2(glob, glob->swapbuf1, glob->swapbuf2, 3, a, glob->swapbuf2alt, 1);
+    } else {
+        dec2(glob, glob->swapbuf1alt, glob->swapbuf2alt, 3, a, glob->swapbuf2, 1);
     }
+    dec2(glob, glob->swapbuf1, glob->swapbuf2, 3, val, glob->swapbuf2alt, 2);
+    dec1(glob, glob->swapbuf1, glob->swapbuf2, 3, val);
 
     /* do output */
     for (b=0, c=0; c<4; c++) {