diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index ac16cd8354..340ca12035 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -681,11 +681,9 @@ static int svq3_decode_mb (H264Context *h, unsigned int mb_type) { static int svq3_decode_slice_header (H264Context *h) { MpegEncContext *const s = (MpegEncContext *) h; - int mb_xy; + const int mb_xy = h->mb_xy; int i, header; - mb_xy = h->mb_xy = s->mb_x + s->mb_y*s->mb_stride; - header = get_bits (&s->gb, 8); if (((header & 0x9F) != 1 && (header & 0x9F) != 2) || (header & 0x60) == 0) { @@ -844,7 +842,7 @@ static int svq3_decode_frame (AVCodecContext *avctx, init_get_bits (&s->gb, buf, 8*buf_size); - s->mb_x = s->mb_y = 0; + s->mb_x = s->mb_y = h->mb_xy = 0; if (svq3_decode_slice_header (h)) return -1; @@ -917,6 +915,7 @@ static int svq3_decode_frame (AVCodecContext *avctx, for (s->mb_y=0; s->mb_y < s->mb_height; s->mb_y++) { for (s->mb_x=0; s->mb_x < s->mb_width; s->mb_x++) { + h->mb_xy = s->mb_x + s->mb_y*s->mb_stride; if ( (get_bits_count(&s->gb) + 7) >= s->gb.size_in_bits && ((get_bits_count(&s->gb) & 7) == 0 || show_bits (&s->gb, (-get_bits_count(&s->gb) & 7)) == 0)) {