|
|
@@ -232,19 +232,19 @@ static int decode_group3_2d_line(AVCodecContext *avctx, GetBitContext *gb, |
|
|
static void put_line(uint8_t *dst, int size, int width, const int *runs) |
|
|
static void put_line(uint8_t *dst, int size, int width, const int *runs) |
|
|
{ |
|
|
{ |
|
|
PutBitContext pb; |
|
|
PutBitContext pb; |
|
|
int run, mode = 1, pix_left = width, run_idx = 0; |
|
|
|
|
|
|
|
|
int run, mode = ~0, pix_left = width, run_idx = 0; |
|
|
|
|
|
|
|
|
init_put_bits(&pb, dst, size*8); |
|
|
init_put_bits(&pb, dst, size*8); |
|
|
while(pix_left > 0){ |
|
|
while(pix_left > 0){ |
|
|
run = runs[run_idx++]; |
|
|
run = runs[run_idx++]; |
|
|
mode = !mode; |
|
|
|
|
|
|
|
|
mode = ~mode; |
|
|
if(!run){ |
|
|
if(!run){ |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
pix_left -= run; |
|
|
pix_left -= run; |
|
|
for(; run > 16; run -= 16) |
|
|
for(; run > 16; run -= 16) |
|
|
put_sbits(&pb, 16, -mode); |
|
|
|
|
|
put_sbits(&pb, run, -mode); |
|
|
|
|
|
|
|
|
put_sbits(&pb, 16, mode); |
|
|
|
|
|
put_sbits(&pb, run, mode); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|