intrabc: do not transmit delta_lf_present_flag
BUG=aomedia:1230
Change-Id: I8a66b6303752b77a09cca1fe6890137146c50d1e
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c
index 49e594b..fab55e8 100644
--- a/av1/decoder/decodeframe.c
+++ b/av1/decoder/decodeframe.c
@@ -3051,7 +3051,10 @@
xd->prev_qindex = cm->base_qindex;
cm->delta_q_res = 1 << aom_rb_read_literal(rb, 2);
#if CONFIG_EXT_DELTA_Q
- cm->delta_lf_present_flag = aom_rb_read_bit(rb);
+#if CONFIG_INTRABC
+ if (!cm->allow_intrabc || !NO_FILTER_FOR_IBC)
+#endif // CONFIG_INTRABC
+ cm->delta_lf_present_flag = aom_rb_read_bit(rb);
if (cm->delta_lf_present_flag) {
xd->prev_delta_lf_from_base = 0;
cm->delta_lf_res = 1 << aom_rb_read_literal(rb, 2);
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index e21c97c..f2ec719 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -4148,7 +4148,12 @@
aom_wb_write_literal(wb, OD_ILOG_NZ(cm->delta_q_res) - 1, 2);
xd->prev_qindex = cm->base_qindex;
#if CONFIG_EXT_DELTA_Q
- aom_wb_write_bit(wb, cm->delta_lf_present_flag);
+#if CONFIG_INTRABC
+ if (cm->allow_intrabc && NO_FILTER_FOR_IBC)
+ assert(cm->delta_lf_present_flag == 0);
+ else
+#endif // CONFIG_INTRABC
+ aom_wb_write_bit(wb, cm->delta_lf_present_flag);
if (cm->delta_lf_present_flag) {
aom_wb_write_literal(wb, OD_ILOG_NZ(cm->delta_lf_res) - 1, 2);
xd->prev_delta_lf_from_base = 0;
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index 9267590..ee3e79c 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -4082,6 +4082,9 @@
#if CONFIG_INTRABC
// If intrabc is allowed but never selected, reset the allow_intrabc flag.
if (cm->allow_intrabc && !cpi->intrabc_used) cm->allow_intrabc = 0;
+#if CONFIG_EXT_DELTA_Q
+ if (cm->allow_intrabc) cm->delta_lf_present_flag = 0;
+#endif // CONFIG_EXT_DELTA_Q
#endif // CONFIG_INTRABC
}