[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