OSDN Git Service

swscale: fix mono input for width%8
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 19 Jun 2011 01:33:15 +0000 (03:33 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 19 Jun 2011 01:54:16 +0000 (03:54 +0200)
Fixes ticket193

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libswscale/swscale.c

index 4318e0b..abbe375 100644 (file)
@@ -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