swscale: use yuv2packed1() functions for unscaled chroma also.
authorRonald S. Bultje <rsbultje@gmail.com>
Sun, 12 Feb 2012 23:48:24 +0000 (15:48 -0800)
committerRonald S. Bultje <rsbultje@gmail.com>
Mon, 13 Feb 2012 15:14:04 +0000 (07:14 -0800)
libswscale/swscale.c

index ddfafbe..d05e681 100644 (file)
@@ -589,8 +589,8 @@ static int swScale(SwsContext *c, const uint8_t* src[],
             } else {
                 assert(lumSrcPtr  + vLumFilterSize - 1 < lumPixBuf  + vLumBufSize*2);
                 assert(chrUSrcPtr + vChrFilterSize - 1 < chrUPixBuf + vChrBufSize*2);
-                if (c->yuv2packed1 && vLumFilterSize == 1 && vChrFilterSize == 2) { //unscaled RGB
-                    int chrAlpha = vChrFilter[2 * dstY + 1];
+                if (c->yuv2packed1 && vLumFilterSize == 1 && vChrFilterSize <= 2) { //unscaled RGB
+                    int chrAlpha = vChrFilterSize == 1 ? 0 : vChrFilter[2 * dstY + 1];
                     yuv2packed1(c, *lumSrcPtr, chrUSrcPtr, chrVSrcPtr,
                                 alpPixBuf ? *alpSrcPtr : NULL,
                                 dest[0], dstW, chrAlpha, dstY);