lavfi/gradfun: fix rounding in MMX code.
authorClément Bœsch <ubitux@gmail.com>
Thu, 6 Dec 2012 23:36:29 +0000 (00:36 +0100)
committerClément Bœsch <ubitux@gmail.com>
Wed, 19 Dec 2012 02:13:25 +0000 (03:13 +0100)
Current code divide before increasing precision.

libavfilter/x86/gradfun.c

index 5e71aab..1ca5928 100644 (file)
@@ -62,8 +62,8 @@ static void gradfun_filter_line_mmxext(uint8_t *dst, const uint8_t *src, const u
         "pminsw     %%mm7, %%mm2 \n" // m = -max(0, 127-m)
         "pmullw     %%mm2, %%mm2 \n"
         "paddw      %%mm4, %%mm0 \n" // pix += dither
-        "pmulhw     %%mm2, %%mm1 \n"
         "psllw         $2, %%mm1 \n" // m = m*m*delta >> 14
+        "pmulhw     %%mm2, %%mm1 \n"
         "paddw      %%mm1, %%mm0 \n" // pix += m
         "psraw         $7, %%mm0 \n"
         "packuswb   %%mm0, %%mm0 \n"