[FFmpeg-cvslog] avcodec/jpeglsdec: fix palette parsing code
Michael Niedermayer
git at videolan.org
Thu Apr 3 03:45:20 CEST 2014
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Apr 3 03:26:27 2014 +0200| [fd2bcfc4d6967588168443849b9bc365c78bb9af] | committer: Michael Niedermayer
avcodec/jpeglsdec: fix palette parsing code
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fd2bcfc4d6967588168443849b9bc365c78bb9af
---
libavcodec/jpeglsdec.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/libavcodec/jpeglsdec.c b/libavcodec/jpeglsdec.c
index 003656f..9958903 100644
--- a/libavcodec/jpeglsdec.c
+++ b/libavcodec/jpeglsdec.c
@@ -80,7 +80,9 @@ int ff_jpegls_decode_lse(MJpegDecodeContext *s)
return AVERROR_PATCHWELCOME;
}
- if ((5 + wt*(s->maxval+1)) < 65535)
+ if (!s->maxval)
+ maxtab = 255;
+ else if ((5 + wt*(s->maxval+1)) < 65535)
maxtab = s->maxval;
else
maxtab = 65530/wt - 1;
@@ -102,10 +104,10 @@ int ff_jpegls_decode_lse(MJpegDecodeContext *s)
uint32_t *pal = s->picture_ptr->data[1];
s->picture_ptr->format =
s->avctx->pix_fmt = AV_PIX_FMT_PAL8;
- for (i=s->palette_index; i<maxtab; i++) {
+ for (i=s->palette_index; i<=maxtab; i++) {
pal[i] = 0;
for (j=0; j<wt; j++) {
- pal[i] |= get_bits(&s->gb, 8) << (8*wt);
+ pal[i] |= get_bits(&s->gb, 8) << (8*(wt-j-1));
}
}
s->palette_index = i;
More information about the ffmpeg-cvslog
mailing list