From 92ad0d9d3bfcb756963f4becf0f1c566bb5d6b79 Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Fri, 21 Jul 2006 04:03:56 +0000 Subject: [PATCH] Set DC = 0 for skipped MB as it interferes DC prediction Originally committed as revision 5807 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/vc1.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index aedbd773c4..a18dbfa16a 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -2491,7 +2491,10 @@ static int vc1_decode_p_mb(VC1Context *v) else //Skipped { s->mb_intra = 0; - for(i = 0; i < 6; i++) v->mb_type[0][s->block_index[i]] = 0; + for(i = 0; i < 6; i++) { + v->mb_type[0][s->block_index[i]] = 0; + s->dc_val[0][s->block_index[i]] = 0; + } s->current_picture.mb_type[mb_pos] = MB_TYPE_SKIP; s->current_picture.qscale_table[mb_pos] = 0; vc1_pred_mv(s, 0, 0, 0, 1, v->range_x, v->range_y, v->mb_type[0]); @@ -2590,7 +2593,10 @@ static int vc1_decode_p_mb(VC1Context *v) else //Skipped MB { s->mb_intra = 0; - for (i=0; i<6; i++) v->mb_type[0][s->block_index[i]] = 0; + for (i=0; i<6; i++) { + v->mb_type[0][s->block_index[i]] = 0; + s->dc_val[0][s->block_index[i]] = 0; + } for (i=0; i<4; i++) { vc1_pred_mv(s, i, 0, 0, 0, v->range_x, v->range_y, v->mb_type[0]);