summaryrefslogtreecommitdiff
path: root/vp9/decoder
diff options
context:
space:
mode:
authorJohn Koleszar <jkoleszar@google.com>2013-06-14 08:49:58 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2013-06-14 08:49:58 -0700
commit1dfc717ba88ae9ac9aebfde27cd2142d2795ed55 (patch)
tree8053a6ea745ec438e210b09c801ef994036343f9 /vp9/decoder
parent4ad96115cde5d18aaa274909f46742e3ceede034 (diff)
parenta5657f2cd61e48fc3db11b9fe3f175896df3ffd6 (diff)
downloadlibvpx-1dfc717ba88ae9ac9aebfde27cd2142d2795ed55.tar
libvpx-1dfc717ba88ae9ac9aebfde27cd2142d2795ed55.tar.gz
libvpx-1dfc717ba88ae9ac9aebfde27cd2142d2795ed55.tar.bz2
libvpx-1dfc717ba88ae9ac9aebfde27cd2142d2795ed55.zip
Merge "Avoid inverse transform/recon without residual"
Diffstat (limited to 'vp9/decoder')
-rw-r--r--vp9/decoder/vp9_decodframe.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c
index 1342b31f8..7fde458d1 100644
--- a/vp9/decoder/vp9_decodframe.c
+++ b/vp9/decoder/vp9_decodframe.c
@@ -270,6 +270,10 @@ static void decode_block_intra(int plane, int block, BLOCK_SIZE_TYPE bsize,
vp9_predict_intra_block(xd, tx_ib, plane_b_size, tx_size,
b_mode, dst, xd->plane[plane].dst.stride);
+ // Early exit if there are no coefficients
+ if (xd->mode_info_context->mbmi.mb_skip_coeff)
+ return;
+
switch (ss_txfrm_size / 2) {
case TX_4X4:
tx_type = plane == 0 ? get_tx_type_4x4(xd, raster_block) : DCT_DCT;
@@ -318,8 +322,9 @@ static void decode_atom(VP9D_COMP *pbi, MACROBLOCKD *xd,
if (!vp9_reader_has_error(r)) {
vp9_decode_tokens(pbi, xd, r, bsize);
}
+
+ foreach_transformed_block(xd, bsize, decode_block, xd);
}
- foreach_transformed_block(xd, bsize, decode_block, xd);
}
static void decode_sb_intra(VP9D_COMP *pbi, MACROBLOCKD *xd,