Browse Source

swscale: override the lack of the accurate rounding flag when needed for dither.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Michael Niedermayer 13 years ago
parent
commit
ba91bf58cd
1 changed files with 2 additions and 1 deletions
  1. 2 1
      libswscale/x86/swscale_template.c

+ 2 - 1
libswscale/x86/swscale_template.c

@@ -2366,7 +2366,8 @@ static void RENAME(sws_init_swScale)(SwsContext *c)
             default: break;
             default: break;
             }
             }
         } else {
         } else {
-            c->yuv2yuv1     = RENAME(yuv2yuv1    );
+            int should_dither= isNBPS(c->srcFormat) || is16BPS(c->srcFormat);
+            c->yuv2yuv1     = should_dither ? RENAME(yuv2yuv1_ar    ) : RENAME(yuv2yuv1    );
             c->yuv2yuvX     = RENAME(yuv2yuvX    );
             c->yuv2yuvX     = RENAME(yuv2yuvX    );
             switch (c->dstFormat) {
             switch (c->dstFormat) {
             case PIX_FMT_RGB32:   c->yuv2packedX = RENAME(yuv2rgb32_X);   break;
             case PIX_FMT_RGB32:   c->yuv2packedX = RENAME(yuv2rgb32_X);   break;