summaryrefslogtreecommitdiff
path: root/libswscale
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-06-19 03:33:15 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-06-19 03:54:16 +0200
commit15b4f6449ddb1f52ae82dee3f94a5b56b636cbea (patch)
tree24f077ac22e405c777dde38861ca21bd7384e8c6 /libswscale
parent799a87d749b473a2ab2494daef905e5129c5c056 (diff)
downloadffmpeg-15b4f6449ddb1f52ae82dee3f94a5b56b636cbea.tar.gz
swscale: fix mono input for width%8
Fixes ticket193 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswscale')
-rw-r--r--libswscale/swscale.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index 4318e0bf15..abbe375685 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