Remove and refactor code in rdopt.c

Change-Id: Ie35949c803a39717162d2a304d58f68dbcfc1f45
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index ab37ec8..23e1729 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -6907,6 +6907,7 @@
   uint8_t *tmp_buf;
 
 #if CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
+  MOTION_MODE motion_mode;
   int allow_motvar =
 #if CONFIG_EXT_INTER
       !is_comp_interintra_pred &&
@@ -6918,7 +6919,7 @@
   uint8_t best_blk_skip[MAX_MB_PLANE][MAX_MIB_SIZE * MAX_MIB_SIZE * 4];
 #endif  // CONFIG_VAR_TX
   int64_t best_rd = INT64_MAX;
-  MB_MODE_INFO best_mbmi;
+  MB_MODE_INFO base_mbmi, best_mbmi;
 #if CONFIG_EXT_INTER
   int rate2_bmc_nocoeff;
   int rate_mv_bmc;
@@ -7685,37 +7686,25 @@
   if (cm->interp_filter == SWITCHABLE) rd_stats->rate += rs;
 #if CONFIG_MOTION_VAR
   rate2_nocoeff = rd_stats->rate;
+  base_mbmi = *mbmi;
 #endif  // CONFIG_MOTION_VAR
 
 #if CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
   best_rd = INT64_MAX;
-  for (mbmi->motion_mode = SIMPLE_TRANSLATION;
-       mbmi->motion_mode < (allow_motvar ? MOTION_MODES : 1);
-       mbmi->motion_mode++) {
-    int64_t tmp_rd = INT64_MAX;
+  for (motion_mode = SIMPLE_TRANSLATION;
+       motion_mode < (allow_motvar ? MOTION_MODES : 1); motion_mode++) {
+    int64_t tmp_rd = INT64_MAX, tmp_dist;
+    int tmp_rate;
 #if CONFIG_EXT_INTER
-    int tmp_rate2 = mbmi->motion_mode != SIMPLE_TRANSLATION ? rate2_bmc_nocoeff
-                                                            : rate2_nocoeff;
+    int tmp_rate2 =
+        motion_mode != SIMPLE_TRANSLATION ? rate2_bmc_nocoeff : rate2_nocoeff;
 #else
     int tmp_rate2 = rate2_nocoeff;
 #endif  // CONFIG_EXT_INTER
-#if CONFIG_EXT_INTERP
-#if CONFIG_DUAL_FILTER
-    InterpFilter obmc_interp_filter[2][2] = {
-      { mbmi->interp_filter[0], mbmi->interp_filter[1] },  // obmc == 0
-      { mbmi->interp_filter[0], mbmi->interp_filter[1] }   // obmc == 1
-    };
-#else
-    InterpFilter obmc_interp_filter[2] = {
-      mbmi->interp_filter,  // obmc == 0
-      mbmi->interp_filter   // obmc == 1
-    };
-#endif  // CONFIG_DUAL_FILTER
-#endif  // CONFIG_EXT_INTERP
 
+    *mbmi = base_mbmi;
+    mbmi->motion_mode = motion_mode;
 #if CONFIG_MOTION_VAR
-    int tmp_rate;
-    int64_t tmp_dist;
     if (mbmi->motion_mode == OBMC_CAUSAL) {
 #if CONFIG_EXT_INTER
       *mbmi = best_bmc_mbmi;
@@ -7742,12 +7731,11 @@
 #if CONFIG_EXT_INTERP
 #if CONFIG_DUAL_FILTER
         if (!has_subpel_mv_component(xd->mi[0], xd, 0))
-          obmc_interp_filter[1][0] = mbmi->interp_filter[0] = EIGHTTAP_REGULAR;
+          mbmi->interp_filter[0] = EIGHTTAP_REGULAR;
         if (!has_subpel_mv_component(xd->mi[0], xd, 1))
-          obmc_interp_filter[1][1] = mbmi->interp_filter[1] = EIGHTTAP_REGULAR;
+          mbmi->interp_filter[1] = EIGHTTAP_REGULAR;
 #else
-        if (!av1_is_interp_needed(xd))
-          obmc_interp_filter[1] = mbmi->interp_filter = EIGHTTAP_REGULAR;
+        if (!av1_is_interp_needed(xd)) mbmi->interp_filter = EIGHTTAP_REGULAR;
 #endif  // CONFIG_DUAL_FILTER
         // This is not quite correct with CONFIG_DUAL_FILTER when a filter
         // is needed in only one direction
@@ -7909,14 +7897,6 @@
 #if CONFIG_MOTION_VAR || CONFIG_WARPED_MOTION
     tmp_rd = RDCOST(x->rdmult, x->rddiv, rd_stats->rate, rd_stats->dist);
     if (mbmi->motion_mode == SIMPLE_TRANSLATION || (tmp_rd < best_rd)) {
-#if CONFIG_EXT_INTERP
-#if CONFIG_DUAL_FILTER
-      mbmi->interp_filter[0] = obmc_interp_filter[mbmi->motion_mode][0];
-      mbmi->interp_filter[1] = obmc_interp_filter[mbmi->motion_mode][1];
-#else
-      mbmi->interp_filter = obmc_interp_filter[mbmi->motion_mode];
-#endif  // CONFIG_DUAL_FILTER
-#endif  // CONFIG_EXT_INTERP
       best_mbmi = *mbmi;
       best_rd = tmp_rd;
       best_rd_stats = *rd_stats;