swscale: align vertical filtersize by 2 on x86.
authorRonald S. Bultje <rsbultje@gmail.com>
Fri, 4 Nov 2011 19:19:29 +0000 (12:19 -0700)
committerRonald S. Bultje <rsbultje@gmail.com>
Sat, 5 Nov 2011 14:06:38 +0000 (07:06 -0700)
The vertical scaler handles 2 rows at a time and thus requires
alignment by 2, or else it'll read invalid memory and result in
corrupt output.

libswscale/utils.c

index 64ac77d..862b273 100644 (file)
@@ -962,7 +962,7 @@ int sws_init_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter)
     /* precalculate vertical scaler filter coefficients */
     {
         const int filterAlign=
-            (HAVE_MMX     && cpu_flags & AV_CPU_FLAG_MMX) && (flags & SWS_ACCURATE_RND) ? 2 :
+            (HAVE_MMX     && cpu_flags & AV_CPU_FLAG_MMX) ? 2 :
             (HAVE_ALTIVEC && cpu_flags & AV_CPU_FLAG_ALTIVEC) ? 8 :
             1;