Fix for context derivation of morph_pred

STATS_CHANGED

Fixes https://gitlab.com/AOMediaCodec/avm/-/issues/440
diff --git a/av1/common/pred_common.h b/av1/common/pred_common.h
index ced085b..13d7eef 100644
--- a/av1/common/pred_common.h
+++ b/av1/common/pred_common.h
@@ -366,7 +366,8 @@
   for (int i = 0; i < MAX_NUM_NEIGHBORS; ++i) {
     const MB_MODE_INFO *const neighbor = xd->neighbors[i];
     if (neighbor != NULL) {
-      ctx += neighbor->morph_pred;
+      ctx +=
+          (is_intrabc_block(neighbor, xd->tree_type) && neighbor->morph_pred);
     }
   }
   return ctx;
diff --git a/av1/common/reconinter.c b/av1/common/reconinter.c
index c5677f5..88437be 100644
--- a/av1/common/reconinter.c
+++ b/av1/common/reconinter.c
@@ -4840,6 +4840,9 @@
 #if CONFIG_AFFINE_REFINEMENT
   mbmi.comp_refine_type = COMP_REFINE_SUBBLK2P;
 #endif
+#if CONFIG_MORPH_PRED
+  mbmi.morph_pred = 0;
+#endif  // CONFIG_MORPH_PRED
 
   InterPredParams params0, params1;
   av1_opfl_build_inter_predictor(cm, xd, plane, &mbmi, bw, bh, mi_x, mi_y,
diff --git a/av1/common/tip.c b/av1/common/tip.c
index 0afd6c2..e243a5f 100644
--- a/av1/common/tip.c
+++ b/av1/common/tip.c
@@ -1113,6 +1113,9 @@
   mbmi->interinter_comp.type = COMPOUND_AVERAGE;
   mbmi->max_mv_precision = MV_PRECISION_ONE_EIGHTH_PEL;
   mbmi->pb_mv_precision = MV_PRECISION_ONE_EIGHTH_PEL;
+#if CONFIG_MORPH_PRED
+  mbmi->morph_pred = 0;
+#endif  // CONFIG_MORPH_PRED
 
 #if CONFIG_AFFINE_REFINEMENT
   mbmi->comp_refine_type = COMP_REFINE_SUBBLK2P;
@@ -1354,6 +1357,9 @@
     mbmi->interp_fltr = EIGHTTAP_REGULAR;
     mbmi->use_intrabc[xd->tree_type == CHROMA_PART] = 0;
     mbmi->use_intrabc[0] = 0;
+#if CONFIG_MORPH_PRED
+    mbmi->morph_pred = 0;
+#endif  // CONFIG_MORPH_PRED
     mbmi->motion_mode = SIMPLE_TRANSLATION;
     mbmi->sb_type[PLANE_TYPE_Y] = BLOCK_8X8;
     mbmi->interinter_comp.type = COMPOUND_AVERAGE;
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 2c85c45..1e062ed 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -2009,6 +2009,9 @@
 #if CONFIG_NEW_CONTEXT_MODELING
     mbmi->use_intrabc[0] = 0;
     mbmi->use_intrabc[1] = 0;
+#if CONFIG_MORPH_PRED
+    mbmi->morph_pred = 0;
+#endif  // CONFIG_MORPH_PRED
     const int intrabc_ctx = get_intrabc_ctx(xd);
     mbmi->use_intrabc[xd->tree_type == CHROMA_PART] =
         aom_read_symbol(r, ec_ctx->intrabc_cdf[intrabc_ctx], 2,
@@ -3602,6 +3605,9 @@
   mbmi->use_intrabc[0] = 0;
   mbmi->use_intrabc[1] = 0;
 #endif  // CONFIG_NEW_CONTEXT_MODELING
+#if CONFIG_MORPH_PRED
+  mbmi->morph_pred = 0;
+#endif  // CONFIG_MORPH_PRED
 
   set_default_max_mv_precision(mbmi, sbi->sb_mv_precision);
   set_mv_precision(mbmi, mbmi->max_mv_precision);  // initialize to max
@@ -4517,6 +4523,9 @@
 #if CONFIG_NEW_CONTEXT_MODELING
     mbmi->use_intrabc[0] = 0;
     mbmi->use_intrabc[1] = 0;
+#if CONFIG_MORPH_PRED
+    mbmi->morph_pred = 0;
+#endif  // CONFIG_MORPH_PRED
     const int intrabc_ctx = get_intrabc_ctx(xd);
     mbmi->use_intrabc[xd->tree_type == CHROMA_PART] =
         aom_read_symbol(r, xd->tile_ctx->intrabc_cdf[intrabc_ctx], 2,
diff --git a/av1/encoder/intra_mode_search.c b/av1/encoder/intra_mode_search.c
index c0745aa..92ca0d0 100644
--- a/av1/encoder/intra_mode_search.c
+++ b/av1/encoder/intra_mode_search.c
@@ -67,6 +67,9 @@
   mbmi->joint_y_mode_delta_angle = DC_PRED;
   mbmi->y_mode_idx = DC_PRED;
 #endif  // CONFIG_AIMC
+#if CONFIG_MORPH_PRED
+  mbmi->morph_pred = 0;
+#endif  // CONFIG_MORPH_PRED
 
   mbmi->angle_delta[PLANE_TYPE_Y] = 0;
   mbmi->angle_delta[PLANE_TYPE_UV] = 0;
@@ -142,6 +145,9 @@
     mbmi->use_intrabc[0] = 0;
     mbmi->use_intrabc[1] = 0;
 #endif  // CONFIG_NEW_CONTEXT_MODELING
+#if CONFIG_MORPH_PRED
+    mbmi->morph_pred = 0;
+#endif  // CONFIG_MORPH_PRED
     return 1;
   } else {
     return 0;
@@ -1039,6 +1045,9 @@
 #if CONFIG_REFINEMV
   mbmi->refinemv_flag = 0;
 #endif  // CONFIG_REFINEMV
+#if CONFIG_MORPH_PRED
+  mbmi->morph_pred = 0;
+#endif  // CONFIG_MORPH_PRED
 
 #if CONFIG_EXTENDED_WARP_PREDICTION
   mbmi->motion_mode = SIMPLE_TRANSLATION;
diff --git a/av1/encoder/motion_search_facade.c b/av1/encoder/motion_search_facade.c
index 3be9c24..4a0bbca 100644
--- a/av1/encoder/motion_search_facade.c
+++ b/av1/encoder/motion_search_facade.c
@@ -1410,6 +1410,9 @@
   mbmi->use_intrabc[0] = 0;
   mbmi->use_intrabc[1] = 0;
 #endif  // CONFIG_IBC_SR_EXT
+#if CONFIG_MORPH_PRED
+  mbmi->morph_pred = 0;
+#endif  // CONFIG_MORPH_PRED
 
   mbmi->cwp_idx = CWP_EQUAL;