diff --git a/libavcodec/mjpeg.c b/libavcodec/mjpeg.c index 7aaf1e73ad..8f24b075cf 100644 --- a/libavcodec/mjpeg.c +++ b/libavcodec/mjpeg.c @@ -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);