OSDN Git Service

jpegdec: be less picky on padding
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 14 Mar 2013 16:20:44 +0000 (17:20 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 14 Mar 2013 16:20:44 +0000 (17:20 +0100)
Fixes Ticket2353

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/mjpegdec.c

index e38922b..dafa68a 100644 (file)
@@ -742,7 +742,9 @@ static void handle_rstn(MJpegDecodeContext *s, int nb_components)
 
         i = 8 + ((-get_bits_count(&s->gb)) & 7);
         /* skip RSTn */
-        if (s->restart_count == 0 && show_bits(&s->gb, i) == (1 << i) - 1) {
+        if (s->restart_count == 0) {
+          if(   show_bits(&s->gb, i) == (1 << i) - 1
+             || show_bits(&s->gb, i) == 0xFF) {
             int pos = get_bits_count(&s->gb);
             align_get_bits(&s->gb);
             while (get_bits_left(&s->gb) >= 8 && show_bits(&s->gb, 8) == 0xFF)
@@ -752,6 +754,7 @@ static void handle_rstn(MJpegDecodeContext *s, int nb_components)
                     s->last_dc[i] = 1024;
             } else
                 skip_bits_long(&s->gb, pos - get_bits_count(&s->gb));
+          }
         }
     }
 }