intrabc: Allow ext_tx transforms

objective-1-fast results:

sequence       PSNR    PSNR HVS    SSIM    CIEDE   APSNR   MS SSIM VMAF
average        -0.02    0.01       -0.02   -0.03   -0.02    0.00    0.06
1080p           0.02    0.01        0.03    0.00    0.01    0.02    0.09
1080p-screen   -0.32   -0.28       -0.32   -0.44   -0.31   -0.27    0.00
360p            0.06    0.14        0.10    0.10    0.08    0.11    0.22
720p            0.00    0.04       -0.05    0.01    0.00   -0.01   -0.10
wikipedia_420  -1.04   -0.95       -1.05   -1.30   -1.03   -0.88   -0.29

Change-Id: I30ce8a869daf1c3ed539ffed552786cbb785e7d0
diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index 78557eb..adf6e60 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -983,10 +983,10 @@
                                   int block, TX_SIZE tx_size) {
   const MODE_INFO *const mi = xd->mi[0];
   const MB_MODE_INFO *const mbmi = &mi->mbmi;
-#if CONFIG_INTRABC
-  // TODO(aconverse@google.com): Revisit this decision
+#if CONFIG_INTRABC && (!CONFIG_EXT_TX || CONFIG_TXK_SEL)
+  // TODO(aconverse@google.com): Handle INTRABC + EXT_TX + TXK_SEL
   if (is_intrabc_block(mbmi)) return DCT_DCT;
-#endif  // CONFIG_INTRABC
+#endif  // CONFIG_INTRABC && (!CONFIG_EXT_TX || CONFIG_TXK_SEL)
 #if !CONFIG_TXK_SEL
 #if FIXED_TX_TYPE
   const int block_raster_idx = av1_block_index_to_raster_order(tx_size, block);
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index b40cad0..a7bd816 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -1049,6 +1049,13 @@
       av1_find_ref_dv(&dv_ref, mi_row, mi_col);
       xd->corrupted |=
           !assign_dv(cm, xd, &mbmi->mv[0], &dv_ref, mi_row, mi_col, bsize, r);
+#if CONFIG_EXT_TX && !CONFIG_TXK_SEL
+      av1_read_tx_type(cm, xd,
+#if CONFIG_SUPERTX
+                       0,
+#endif
+                       r);
+#endif  // CONFIG_EXT_TX && !CONFIG_TXK_SEL
       return;
     }
   }
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 03eb909..1066e07 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -2164,6 +2164,13 @@
       int_mv dv_ref;
       av1_find_ref_dv(&dv_ref, mi_row, mi_col);
       av1_encode_dv(w, &mbmi->mv[0].as_mv, &dv_ref.as_mv, &ec_ctx->ndvc);
+#if CONFIG_EXT_TX && !CONFIG_TXK_SEL
+      av1_write_tx_type(cm, xd,
+#if CONFIG_SUPERTX
+                        0,
+#endif
+                        w);
+#endif  // CONFIG_EXT_TX && !CONFIG_TXK_SEL
       return;
     }
   }