vp56: Remove clear_blocks call, and clear alpha plane U/V DC only
authorRonald S. Bultje <rsbultje@gmail.com>
Fri, 1 Feb 2013 19:04:50 +0000 (11:04 -0800)
committerMartin Storsjö <martin@martin.st>
Tue, 19 Feb 2013 20:33:11 +0000 (22:33 +0200)
The non-alpha and alpha-Y planes are cleared in the idct_put/add()
calls. For the alpha U/V planes, we only care about the DC for entropy
context prediction purposes, the rest of the data is unused.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavcodec/vp56.c

index dec7869c1bf28a078e6c721aadd6cabd659fb0c2..64f33c6dbeb5954a1772abcf7114cab476f14461 100644 (file)
@@ -394,8 +394,6 @@ static void vp56_decode_mb(VP56Context *s, int row, int col, int is_alpha)
         mb_type = vp56_decode_mv(s, row, col);
     ref_frame = vp56_reference_frame[mb_type];
 
-    s->dsp.clear_blocks(*s->block_coeff);
-
     s->parse_coeff(s);
 
     vp56_add_predictors_dc(s, ref_frame);
@@ -448,6 +446,11 @@ static void vp56_decode_mb(VP56Context *s, int row, int col, int is_alpha)
             }
             break;
     }
+
+    if (is_alpha) {
+        s->block_coeff[4][0] = 0;
+        s->block_coeff[5][0] = 0;
+    }
 }
 
 static int vp56_size_changed(AVCodecContext *avctx)