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