EC_ADAPT: use tile context for switchable filter.
Change-Id: I7bbd3c62341ede45628641766b8683b77f3a7efb
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 105d3f1..25c7eac 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -1104,6 +1104,12 @@
MB_MODE_INFO *const mbmi,
aom_reader *r) {
FRAME_COUNTS *counts = xd->counts;
+#if CONFIG_EC_ADAPT
+ FRAME_CONTEXT *ec_ctx = xd->tile_ctx;
+#else
+ FRAME_CONTEXT *ec_ctx = cm->fc;
+#endif
+
#if CONFIG_DUAL_FILTER
int dir;
if (cm->interp_filter != SWITCHABLE) {
@@ -1119,11 +1125,11 @@
#if CONFIG_EC_MULTISYMBOL
mbmi->interp_filter[dir] =
(InterpFilter)av1_switchable_interp_inv[aom_read_symbol(
- r, cm->fc->switchable_interp_cdf[ctx], SWITCHABLE_FILTERS,
+ r, ec_ctx->switchable_interp_cdf[ctx], SWITCHABLE_FILTERS,
ACCT_STR)];
#else
mbmi->interp_filter[dir] = (InterpFilter)aom_read_tree(
- r, av1_switchable_interp_tree, cm->fc->switchable_interp_prob[ctx],
+ r, av1_switchable_interp_tree, ec_ctx->switchable_interp_prob[ctx],
ACCT_STR);
#endif
if (counts) ++counts->switchable_interp[ctx][mbmi->interp_filter[dir]];
@@ -1143,11 +1149,11 @@
#if CONFIG_EC_MULTISYMBOL
mbmi->interp_filter =
(InterpFilter)av1_switchable_interp_inv[aom_read_symbol(
- r, cm->fc->switchable_interp_cdf[ctx], SWITCHABLE_FILTERS,
+ r, ec_ctx->switchable_interp_cdf[ctx], SWITCHABLE_FILTERS,
ACCT_STR)];
#else
mbmi->interp_filter = (InterpFilter)aom_read_tree(
- r, av1_switchable_interp_tree, cm->fc->switchable_interp_prob[ctx],
+ r, av1_switchable_interp_tree, ec_ctx->switchable_interp_prob[ctx],
ACCT_STR);
#endif
if (counts) ++counts->switchable_interp[ctx][mbmi->interp_filter];
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 4687944..286e97c 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -1072,6 +1072,11 @@
aom_writer *w) {
AV1_COMMON *const cm = &cpi->common;
const MB_MODE_INFO *const mbmi = &xd->mi[0]->mbmi;
+#if CONFIG_EC_ADAPT
+ FRAME_CONTEXT *ec_ctx = xd->tile_ctx;
+#else
+ FRAME_CONTEXT *ec_ctx = cm->fc;
+#endif
if (cm->interp_filter == SWITCHABLE) {
#if CONFIG_DUAL_FILTER
@@ -1087,7 +1092,7 @@
has_subpel_mv_component(xd->mi[0], xd, dir + 2))) {
const int ctx = av1_get_pred_context_switchable_interp(xd, dir);
av1_write_token(w, av1_switchable_interp_tree,
- cm->fc->switchable_interp_prob[ctx],
+ ec_ctx->switchable_interp_prob[ctx],
&switchable_interp_encodings[mbmi->interp_filter[dir]]);
++cpi->interp_filter_selected[0][mbmi->interp_filter[dir]];
}
@@ -1097,10 +1102,10 @@
const int ctx = av1_get_pred_context_switchable_interp(xd);
#if CONFIG_EC_MULTISYMBOL
aom_write_symbol(w, av1_switchable_interp_ind[mbmi->interp_filter],
- cm->fc->switchable_interp_cdf[ctx], SWITCHABLE_FILTERS);
+ ec_ctx->switchable_interp_cdf[ctx], SWITCHABLE_FILTERS);
#else
av1_write_token(w, av1_switchable_interp_tree,
- cm->fc->switchable_interp_prob[ctx],
+ ec_ctx->switchable_interp_prob[ctx],
&switchable_interp_encodings[mbmi->interp_filter]);
#endif
++cpi->interp_filter_selected[0][mbmi->interp_filter];