summaryrefslogtreecommitdiff
path: root/vp9/decoder/decodframe.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp9/decoder/decodframe.c')
-rw-r--r--vp9/decoder/decodframe.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/vp9/decoder/decodframe.c b/vp9/decoder/decodframe.c
index e7d5667f8..46821073f 100644
--- a/vp9/decoder/decodframe.c
+++ b/vp9/decoder/decodframe.c
@@ -395,7 +395,7 @@ static void decode_macroblock(VP9D_COMP *pbi, MACROBLOCKD *xd,
eobtotal = vp9_decode_mb_tokens_16x16(pbi, xd, bc);
} else if (tx_size == TX_8X8) {
eobtotal = vp9_decode_mb_tokens_8x8(pbi, xd, bc);
- } else {
+ } else if (mode != B_PRED) {
eobtotal = vp9_decode_mb_tokens_4x4(pbi, xd, bc);
}
}
@@ -491,6 +491,8 @@ static void decode_macroblock(VP9D_COMP *pbi, MACROBLOCKD *xd,
xd->mode_info_context->bmi[i].as_mode.context = b->bmi.as_mode.context =
vp9_find_bpred_context(b);
#endif
+ if (!xd->mode_info_context->mbmi.mb_skip_coeff)
+ eobtotal += vp9_decode_coefs_4x4(pbi, xd, bc, PLANE_TYPE_Y_WITH_DC, i);
#if CONFIG_COMP_INTRA_PRED
b_mode2 = xd->mode_info_context->bmi[i].as_mode.second;
@@ -513,6 +515,8 @@ static void decode_macroblock(VP9D_COMP *pbi, MACROBLOCKD *xd,
*(b->base_dst) + b->dst, 16, b->dst_stride);
}
}
+ if (!xd->mode_info_context->mbmi.mb_skip_coeff)
+ vp9_decode_mb_tokens_4x4_uv(pbi, xd, bc);
} else if (mode == SPLITMV) {
if (tx_size == TX_8X8) {
vp9_dequant_idct_add_y_block_8x8(xd->qcoeff, xd->block[0].dequant,