aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2006-07-21 04:03:56 +0000
committerKostya Shishkov <kostya.shishkov@gmail.com>2006-07-21 04:03:56 +0000
commit92ad0d9d3bfcb756963f4becf0f1c566bb5d6b79 (patch)
treede641c4112cbdc8c5cdafcae618c550f50c5c80e
parentb53921aabdd344086c3e45d3206107d30b00faa1 (diff)
downloadffmpeg-92ad0d9d3bfcb756963f4becf0f1c566bb5d6b79.tar.gz
Set DC = 0 for skipped MB as it interferes DC prediction
Originally committed as revision 5807 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/vc1.c10
1 files 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]);