From: Michael Niedermayer Date: Sun, 19 Jun 2011 01:33:15 +0000 (+0200) Subject: swscale: fix mono input for width%8 X-Git-Tag: n0.8~40 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=15b4f6449ddb1f52ae82dee3f94a5b56b636cbea;p=coroid%2Fffmpeg_saccubus.git swscale: fix mono input for width%8 Fixes ticket193 Signed-off-by: Michael Niedermayer --- diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 4318e0bf1..abbe37568 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -1677,6 +1677,11 @@ static void monowhite2Y_c(int16_t *dst, const uint8_t *src, int width, uint32_t for(j=0; j<8; j++) dst[8*i+j]= ((d>>(7-j))&1)*16383; } + if(width&7){ + int d= ~src[i]; + for(j=0; j<(width&7); j++) + dst[8*i+j]= ((d>>(7-j))&1)*16383; + } } static void monoblack2Y_c(int16_t *dst, const uint8_t *src, int width, uint32_t *unused) @@ -1687,6 +1692,11 @@ static void monoblack2Y_c(int16_t *dst, const uint8_t *src, int width, uint32_t for(j=0; j<8; j++) dst[8*i+j]= ((d>>(7-j))&1)*16383; } + if(width&7){ + int d= src[i]; + for(j=0; j<(width&7); j++) + dst[8*i+j]= ((d>>(7-j))&1)*16383; + } } //FIXME yuy2* can read up to 7 samples too much