reset restart_count when restart_interval is set and fill the
[ffmpeg.git] / libavcodec / mjpeg.c
index 7aaf1e7..8f24b07 100644 (file)
@@ -882,6 +882,7 @@ static int mjpeg_decode_init(AVCodecContext *avctx)
 {
     MJpegDecodeContext *s = avctx->priv_data;
     MpegEncContext s2;
+    memset(s, 0, sizeof(MJpegDecodeContext));
 
     s->avctx = avctx;
 
@@ -1573,6 +1574,7 @@ static int mjpeg_decode_dri(MJpegDecodeContext *s)
     if (get_bits(&s->gb, 16) != 4)
        return -1;
     s->restart_interval = get_bits(&s->gb, 16);
+    s->restart_count = 0;
     dprintf("restart interval: %d\n", s->restart_interval);
 
     return 0;
@@ -1892,6 +1894,7 @@ static int mjpeg_decode_frame(AVCodecContext *avctx,
                 switch(start_code) {
                 case SOI:
                    s->restart_interval = 0;
+                   s->restart_count = 0;
                     /* nothing to do on SOI */
                     break;
                 case DQT:
@@ -2000,6 +2003,7 @@ static int mjpegb_decode_frame(AVCodecContext *avctx,
 read_header:
     /* reset on every SOI */
     s->restart_interval = 0;
+    s->restart_count = 0;
     s->mjpb_skiptosod = 0;
 
     init_get_bits(&hgb, buf_ptr, /*buf_size*/(buf_end - buf_ptr)*8);