Fix chroma intra prediction reference check
Fix the intra prediction boundary availability check for chroma
components. Such intricacy is due to the re-schedule of sub8x8
chroma coding block to avoid 2x2 prediction and transform size.
Change-Id: I4a2dff8743cf78af8dfb90265019e8d1222ed734
diff --git a/av1/common/reconintra.c b/av1/common/reconintra.c
index d23a81a..4f99a98 100644
--- a/av1/common/reconintra.c
+++ b/av1/common/reconintra.c
@@ -1884,7 +1884,7 @@
const uint8_t *ref, int ref_stride,
uint8_t *dst, int dst_stride,
int col_off, int row_off, int plane) {
- const BLOCK_SIZE bsize = xd->mi[0]->mbmi.sb_type;
+ BLOCK_SIZE bsize = xd->mi[0]->mbmi.sb_type;
const struct macroblockd_plane *const pd = &xd->plane[plane];
const int txw = tx_size_wide_unit[tx_size];
const int have_top = row_off || xd->up_available;
@@ -1909,6 +1909,12 @@
#if CONFIG_EXT_PARTITION_TYPES
const PARTITION_TYPE partition = xd->mi[0]->mbmi.partition;
#endif
+
+#if CONFIG_CB4X4
+ // force 4x4 chroma component block size.
+ if (plane && bsize < BLOCK_8X8) bsize = BLOCK_8X8;
+#endif
+
const int have_right =
av1_has_right(bsize, mi_row, mi_col, right_available,
#if CONFIG_EXT_PARTITION_TYPES