author Vittorio Giovara Thu, 31 Jul 2014 13:25:30 +0000 (14:25 +0100) committer Vittorio Giovara Fri, 1 Aug 2014 12:07:53 +0000 (13:07 +0100)

index fe5590d..bbe4223 100644 (file)
@@ -159,7 +159,8 @@ void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top,
}
}

-#define UNROLL1(bpp, op) {                                                    \
+#define UNROLL1(bpp, op)                                                      \
+    {                                                                         \
r = dst[0];                                                           \
if (bpp >= 2)                                                         \
g = dst[1];                                                       \
@@ -179,25 +180,24 @@ void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top,
continue;                                                     \
dst[i + 3] = a = op(a, src[i + 3], last[i + 3]);                  \
}                                                                     \
-}
+    }

#define UNROLL_FILTER(op)                                                     \
-    if (bpp == 1)                                                             \
+    if (bpp == 1) {                                                           \
UNROLL1(1, op)                                                        \
-        else if (bpp == 2)                                                    \
-            UNROLL1(2, op)                                                    \
-            else if (bpp == 3)                                                \
-                UNROLL1(3, op)                                                \
-                else if (bpp == 4)                                            \
-                    UNROLL1(4, op)                                            \
-                    else {                                                    \
-                        for (; i < size; i += bpp) {                          \
-                            int j;                                            \
-                            for (j = 0; j < bpp; j++)                         \
-                                dst[i + j] = op(dst[i + j - bpp],             \
-                                                src[i + j], last[i + j]);     \
-                        }                                                     \
-                    }
+    } else if (bpp == 2) {                                                    \
+        UNROLL1(2, op)                                                        \
+    } else if (bpp == 3) {                                                    \
+        UNROLL1(3, op)                                                        \
+    } else if (bpp == 4) {                                                    \
+        UNROLL1(4, op)                                                        \
+    } else {                                                                  \
+        for (; i < size; i += bpp) {                                          \
+            int j;                                                            \
+            for (j = 0; j < bpp; j++)                                         \
+                dst[i + j] = op(dst[i + j - bpp], src[i + j], last[i + j]);   \
+        }                                                                     \
+    }

/* NOTE: 'dst' can be equal to 'last' */
static void png_filter_row(PNGDSPContext *dsp, uint8_t *dst, int filter_type,