From d753173a55f6615baa108a0a664eccfe07568290 Mon Sep 17 00:00:00 2001 From: Fabrice Bellard Date: Sat, 11 Aug 2001 22:08:23 +0000 Subject: [PATCH] fixed last zero mv for field - fixed mismatch handling for intra coefs Originally committed as revision 75 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/mpeg12.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c index a0f8a65fc5..25b8babbe2 100644 --- a/libavcodec/mpeg12.c +++ b/libavcodec/mpeg12.c @@ -633,6 +633,8 @@ static int mpeg_decode_mb(MpegEncContext *s, s->mv_type = MV_TYPE_16X16; s->last_mv[0][0][0] = 0; s->last_mv[0][0][1] = 0; + s->last_mv[0][1][0] = 0; + s->last_mv[0][1][1] = 0; s->mv[0][0][0] = 0; s->mv[0][0][1] = 0; } else if (mb_type & (MB_FOR | MB_BACK)) { @@ -641,7 +643,7 @@ static int mpeg_decode_mb(MpegEncContext *s, for(i=0;i<2;i++) { if (mb_type & (MB_FOR >> i)) { s->mv_dir |= (MV_DIR_FORWARD >> i); - dprintf("mv_type=%d\n", motion_type); + dprintf("motion_type=%d\n", motion_type); switch(motion_type) { case MT_FRAME: /* or MT_16X8 */ if (s->picture_structure == PICT_FRAME) { @@ -1006,7 +1008,6 @@ static int mpeg2_decode_block_intra(MpegEncContext *s, scan_table = ff_alternate_vertical_scan; else scan_table = zigzag_direct; - mismatch = 1; /* DC coef */ component = (n <= 3 ? 0 : n - 4 + 1); @@ -1018,6 +1019,7 @@ static int mpeg2_decode_block_intra(MpegEncContext *s, s->last_dc[component] = dc; block[0] = dc << (3 - s->intra_dc_precision); dprintf("dc=%d\n", block[0]); + mismatch = block[0] ^ 1; i = 1; if (s->intra_vlc_format) rl = &rl_mpeg2; -- GitLab