From daab32960343de43172ebf965099dd4c6939fb86 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 21 Jun 2003 00:50:40 +0000 Subject: [PATCH] fixing concealment MVs prediction Originally committed as revision 1982 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/mpeg12.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c index c68f8d8a05..05023d4bc6 100644 --- a/libavcodec/mpeg12.c +++ b/libavcodec/mpeg12.c @@ -959,12 +959,16 @@ static int mpeg_decode_mb(MpegEncContext *s, /* just parse them */ if (s->picture_structure != PICT_FRAME) skip_bits1(&s->gb); /* field select */ - mpeg_decode_motion(s, s->mpeg_f_code[0][0], 0); - mpeg_decode_motion(s, s->mpeg_f_code[0][1], 0); + + s->mv[0][0][0]= s->last_mv[0][0][0]= s->last_mv[0][1][0] = + mpeg_decode_motion(s, s->mpeg_f_code[0][0], s->last_mv[0][0][0]); + s->mv[0][0][1]= s->last_mv[0][0][1]= s->last_mv[0][1][1] = + mpeg_decode_motion(s, s->mpeg_f_code[0][1], s->last_mv[0][0][1]); + skip_bits1(&s->gb); /* marker */ - } + }else + memset(s->last_mv, 0, sizeof(s->last_mv)); /* reset mv prediction */ s->mb_intra = 1; - memset(s->last_mv, 0, sizeof(s->last_mv)); /* reset mv prediction */ if (s->mpeg2) { for(i=0;i<6;i++) {