Some fixes on enable_jnt_comp

Change-Id: I493c3b66d637d7b59a1c31eddb71179ffd374959
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 4c1f325..63ae357 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -1673,7 +1673,7 @@
     }
 
     if (mbmi->comp_group_idx == 0) {
-      if (cm->seq_params.enable_jnt_comp) {
+      if (cm->seq_params.enable_jnt_comp && !cm->error_resilient_mode) {
         const int comp_index_ctx = get_comp_index_context(cm, xd);
         mbmi->compound_idx = aom_read_symbol(
             r, ec_ctx->compound_index_cdf[comp_index_ctx], 2, ACCT_STR);
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 131429c..8c5073a 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -1199,7 +1199,7 @@
         if (mbmi->compound_idx)
           assert(mbmi->interinter_compound_type == COMPOUND_AVERAGE);
 
-        if (cm->seq_params.enable_jnt_comp) {
+        if (cm->seq_params.enable_jnt_comp && !cm->error_resilient_mode) {
           const int comp_index_ctx = get_comp_index_context(cm, xd);
           aom_write_symbol(w, mbmi->compound_idx,
                            ec_ctx->compound_index_cdf[comp_index_ctx], 2);
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
index 7d2af9e..9f7f6e4 100644
--- a/av1/encoder/encoder.c
+++ b/av1/encoder/encoder.c
@@ -1041,12 +1041,6 @@
   cm->time_scale = oxcf->time_scale;
   cm->equal_picture_interval = oxcf->equal_picture_interval;
   cm->num_ticks_per_picture = oxcf->num_ticks_per_picture;
-  cm->seq_params.enable_dual_filter = oxcf->enable_dual_filter;
-  cm->seq_params.enable_order_hint = oxcf->enable_order_hint;
-  cm->seq_params.enable_jnt_comp = oxcf->enable_jnt_comp;
-  cm->seq_params.enable_jnt_comp &= cm->seq_params.enable_order_hint;
-  // disable jnt_comp at sequence header for error resilient mode
-  cm->seq_params.enable_jnt_comp &= !oxcf->error_resilient_mode;
   cm->width = oxcf->width;
   cm->height = oxcf->height;
   set_sb_size(&cm->seq_params,
@@ -2578,6 +2572,10 @@
 #if CONFIG_EXPLICIT_ORDER_HINT
   cm->seq_params.order_hint_bits = DEFAULT_EXPLICIT_ORDER_HINT_BITS;
 #endif  // CONFIG_EXPLICIT_ORDER_HINT
+  cm->seq_params.enable_dual_filter = oxcf->enable_dual_filter;
+  cm->seq_params.enable_order_hint = oxcf->enable_order_hint;
+  cm->seq_params.enable_jnt_comp = oxcf->enable_jnt_comp;
+  cm->seq_params.enable_jnt_comp &= cm->seq_params.enable_order_hint;
 }
 
 AV1_COMP *av1_create_compressor(AV1EncoderConfig *oxcf,
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 5ff808d..a259438 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -7416,7 +7416,8 @@
   int64_t early_terminate = 0;
 
   int comp_idx;
-  const int search_jnt_comp = is_comp_pred & cm->seq_params.enable_jnt_comp;
+  const int search_jnt_comp = is_comp_pred && cm->seq_params.enable_jnt_comp &&
+                              !cm->error_resilient_mode;
   // If !search_jnt_comp, we need to force mbmi->compound_idx = 1.
   for (comp_idx = !search_jnt_comp; comp_idx < 2; ++comp_idx) {
     compmode_interinter_cost = 0;