From f0a2c8285a4e14b977b7d949cc7323f9be876b1f Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 28 May 2013 17:11:12 +0200 Subject: [PATCH] j2kdec: Try to fix 8bps output case Ive no test samples for which this makes a difference but it matches the 16bit implementation. Signed-off-by: Michael Niedermayer --- libavcodec/j2kdec.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/libavcodec/j2kdec.c b/libavcodec/j2kdec.c index a1fd5558d6..d2e003ce8f 100644 --- a/libavcodec/j2kdec.c +++ b/libavcodec/j2kdec.c @@ -933,12 +933,10 @@ static int decode_tile(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile) dst = line + x * s->ncomponents + compno; for (; x < tile->comp[compno].coord[0][1] - s->image_offset_x; x += s->cdx[compno]) { - *src[compno] += 1 << (s->cbps[compno]-1); - if (*src[compno] < 0) - *src[compno] = 0; - else if (*src[compno] >= (1 << s->cbps[compno])) - *src[compno] = (1 << s->cbps[compno]) - 1; - *dst = *src[compno]++; + int val = *src[compno]++ << (8 - s->cbps[compno]); + val += 1 << 7; + val = av_clip(val, 0, (1 << 8) - 1); + *dst = val; dst += s->ncomponents; } line += s->picture->linesize[0];