Do not use the unscaled yuv->rgb converters if SWS_ACCURATE_RND is set,
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 12 Sep 2008 02:05:37 +0000 (02:05 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 12 Sep 2008 02:05:37 +0000 (02:05 +0000)
because they do not accurately round.

Originally committed as revision 27584 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale

libswscale/swscale.c

index 83373fc..9dcb6f9 100644 (file)
@@ -2160,7 +2160,8 @@ SwsContext *sws_getContext(int srcW, int srcH, int srcFormat, int dstW, int dstH
         }
 #ifdef CONFIG_GPL
         /* yuv2bgr */
-        if ((srcFormat==PIX_FMT_YUV420P || srcFormat==PIX_FMT_YUV422P) && (isBGR(dstFormat) || isRGB(dstFormat)))
+        if ((srcFormat==PIX_FMT_YUV420P || srcFormat==PIX_FMT_YUV422P) && (isBGR(dstFormat) || isRGB(dstFormat))
+            && !(flags & SWS_ACCURATE_RND))
         {
             c->swScale= yuv2rgb_get_func_ptr(c);
         }