Commit dc43ad6d authored by Michael Niedermayer's avatar Michael Niedermayer

pngdec: Fix interlaced 1bpp

Fixes Ticket214
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 738219c9
...@@ -57,14 +57,12 @@ static void png_put_interlaced_row(uint8_t *dst, int width, ...@@ -57,14 +57,12 @@ static void png_put_interlaced_row(uint8_t *dst, int width,
dsp_mask = png_pass_dsp_mask[pass]; dsp_mask = png_pass_dsp_mask[pass];
switch(bits_per_pixel) { switch(bits_per_pixel) {
case 1: case 1:
/* we must initialize the line to zero before writing to it */
if (pass == 0)
memset(dst, 0, (width + 7) >> 3);
src_x = 0; src_x = 0;
for(x = 0; x < width; x++) { for(x = 0; x < width; x++) {
j = (x & 7); j = (x & 7);
if ((dsp_mask << j) & 0x80) { if ((dsp_mask << j) & 0x80) {
b = (src[src_x >> 3] >> (7 - (src_x & 7))) & 1; b = (src[src_x >> 3] >> (7 - (src_x & 7))) & 1;
dst[x >> 3] &= 0xFF7F>>j;
dst[x >> 3] |= b << (7 - j); dst[x >> 3] |= b << (7 - j);
} }
if ((mask << j) & 0x80) if ((mask << j) & 0x80)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment