Fix decoder side cctx condition
This fixes eob and scan_line parameters for speeding up the inverse
transform. No performance change, with very minor decoder speed up.
Change-Id: I71746a3b37e9f6706815dcbaa2e53d3cebf9a93d
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index 7496c05..60cd079 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -149,6 +149,9 @@
}
static AOM_INLINE void inverse_transform_block(DecoderCodingBlock *dcb,
+#if CONFIG_CROSS_CHROMA_TX
+ const AV1_COMMON *cm,
+#endif // CONFIG_CROSS_CHROMA_TX
int plane, const TX_TYPE tx_type,
const TX_SIZE tx_size,
uint16_t *dst, int stride,
@@ -163,7 +166,7 @@
uint16_t eob = eob_data->eob;
#if CONFIG_CROSS_CHROMA_TX
// Update eob and scan_line according to those of the other chroma plane
- if (plane) {
+ if (plane && is_cctx_allowed(cm, &dcb->xd)) {
eob_info *eob_data_c1 =
dcb->eob_data[AOM_PLANE_U] + dcb->txb_offset[AOM_PLANE_U];
eob_info *eob_data_c2 =
@@ -265,7 +268,11 @@
struct macroblockd_plane *const pd = &xd->plane[plane];
uint16_t *dst =
&pd->dst.buf[(row * pd->dst.stride + col) << MI_SIZE_LOG2];
- inverse_transform_block(dcb, plane, tx_type, tx_size, dst, pd->dst.stride,
+ inverse_transform_block(dcb,
+#if CONFIG_CROSS_CHROMA_TX
+ cm,
+#endif // CONFIG_CROSS_CHROMA_TX
+ plane, tx_type, tx_size, dst, pd->dst.stride,
reduced_tx_set_used);
}
}
@@ -318,7 +325,11 @@
uint16_t *dst =
&pd->dst.buf[(blk_row * pd->dst.stride + blk_col) << MI_SIZE_LOG2];
- inverse_transform_block(dcb, plane, tx_type, tx_size, dst, pd->dst.stride,
+ inverse_transform_block(dcb,
+#if CONFIG_CROSS_CHROMA_TX
+ cm,
+#endif // CONFIG_CROSS_CHROMA_TX
+ plane, tx_type, tx_size, dst, pd->dst.stride,
reduced_tx_set_used);
#if CONFIG_MISMATCH_DEBUG
int pixel_c, pixel_r;