Properly set pointers in masked variance functions

Align the address pointers used in the masked variance functions.

Change-Id: I6bec5ee10fdb718f88083d11f0031f86219ddaa1
diff --git a/aom_dsp/variance.c b/aom_dsp/variance.c
index ec294a9..cbe756e 100644
--- a/aom_dsp/variance.c
+++ b/aom_dsp/variance.c
@@ -367,8 +367,9 @@
                                    int ref_stride, int subpel_search) {
   int i, j;
 
-  aom_upsampled_pred(xd, cm, mi_row, mi_col, mv, comp_pred, width, height,
-                     subpel_x_q3, subpel_y_q3, ref, ref_stride, subpel_search);
+  aom_upsampled_pred_c(xd, cm, mi_row, mi_col, mv, comp_pred, width, height,
+                       subpel_x_q3, subpel_y_q3, ref, ref_stride,
+                       subpel_search);
   for (i = 0; i < height; i++) {
     for (j = 0; j < width; j++) {
       comp_pred[j] = ROUND_POWER_OF_TWO(comp_pred[j] + pred[j], 1);
diff --git a/av1/common/reconinter.c b/av1/common/reconinter.c
index 1e6b481..98e64c1 100644
--- a/av1/common/reconinter.c
+++ b/av1/common/reconinter.c
@@ -713,11 +713,11 @@
 }
 
 #if !CONFIG_REMOVE_DIST_WTD_COMP
-static void dist_wtd_comp_weight_assign(const AV1_COMMON *cm,
-                                        const MB_MODE_INFO *mbmi, int order_idx,
-                                        int *fwd_offset, int *bck_offset,
-                                        int *use_dist_wtd_comp_avg,
-                                        int is_compound) {
+void av1_dist_wtd_comp_weight_assign(const AV1_COMMON *cm,
+                                     const MB_MODE_INFO *mbmi, int order_idx,
+                                     int *fwd_offset, int *bck_offset,
+                                     int *use_dist_wtd_comp_avg,
+                                     int is_compound) {
   assert(fwd_offset != NULL && bck_offset != NULL);
   if (!is_compound || mbmi->compound_idx) {
     *fwd_offset = 8;
@@ -924,7 +924,7 @@
         ref, plane, xd->tmp_conv_dst, MAX_SB_SIZE, is_compound, xd->bd);
 
 #if !CONFIG_REMOVE_DIST_WTD_COMP
-    dist_wtd_comp_weight_assign(
+    av1_dist_wtd_comp_weight_assign(
         cm, mi, 0, &inter_pred_params.conv_params.fwd_offset,
         &inter_pred_params.conv_params.bck_offset,
         &inter_pred_params.conv_params.use_dist_wtd_comp_avg, is_compound);
diff --git a/av1/common/reconinter.h b/av1/common/reconinter.h
index bbda4d2..be1f2fc 100644
--- a/av1/common/reconinter.h
+++ b/av1/common/reconinter.h
@@ -378,6 +378,14 @@
   return av1_wedge_params_lookup[sb_type].masks[wedge_sign][wedge_index];
 }
 
+#if !CONFIG_REMOVE_DIST_WTD_COMP
+void av1_dist_wtd_comp_weight_assign(const AV1_COMMON *cm,
+                                     const MB_MODE_INFO *mbmi, int order_idx,
+                                     int *fwd_offset, int *bck_offset,
+                                     int *use_dist_wtd_comp_avg,
+                                     int is_compound);
+#endif  // !CONFIG_REMOVE_DIST_WTD_COMP
+
 const uint8_t *av1_get_compound_type_mask(
     const INTERINTER_COMPOUND_DATA *const comp_data, BLOCK_SIZE sb_type);
 
diff --git a/av1/encoder/mcomp.c b/av1/encoder/mcomp.c
index 115cc49..70cfbf7 100644
--- a/av1/encoder/mcomp.c
+++ b/av1/encoder/mcomp.c
@@ -641,9 +641,9 @@
   int bestsme;
 
   if (mask) {
-    bestsme = vfp->msvf(src_buf, src_stride, 0, 0,
-                        get_buf_from_fullmv(ref, this_mv), ref_stride,
-                        second_pred, mask, mask_stride, invert_mask, &unused);
+    bestsme = vfp->msvf(get_buf_from_fullmv(ref, this_mv), ref_stride, 0, 0,
+                        src_buf, src_stride, second_pred, mask, mask_stride,
+                        invert_mask, &unused);
   } else if (second_pred) {
     bestsme = vfp->svaf(get_buf_from_fullmv(ref, this_mv), ref_stride, 0, 0,
                         src_buf, src_stride, &unused, second_pred);
@@ -3644,9 +3644,9 @@
   const MV mv = get_mv_from_fullmv(&best_mv);
   unsigned int unused;
 
-  return vfp->msvf(src->buf, src->stride, 0, 0,
-                   get_buf_from_fullmv(pre, &best_mv), pre->stride, second_pred,
-                   mask, mask_stride, invert_mask, &unused) +
+  return vfp->msvf(get_buf_from_fullmv(pre, &best_mv), pre->stride, 0, 0,
+                   src->buf, src->stride, second_pred, mask, mask_stride,
+                   invert_mask, &unused) +
          mv_err_cost_(&mv, mv_cost_params);
 }
 
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index f6cd9a7..76573b8 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -1053,8 +1053,8 @@
                             const BLOCK_SIZE bsize, int_mv *cur_mv,
                             int *const rate_mv, HandleInterModeArgs *const args,
                             inter_mode_info *mode_info) {
-  const MACROBLOCKD *const xd = &x->e_mbd;
-  const MB_MODE_INFO *const mbmi = xd->mi[0];
+  MACROBLOCKD *const xd = &x->e_mbd;
+  MB_MODE_INFO *const mbmi = xd->mi[0];
   const int is_comp_pred = has_second_ref(mbmi);
   const PREDICTION_MODE this_mode = mbmi->mode;
   const int refs[2] = { mbmi->ref_frame[0],
@@ -1078,7 +1078,21 @@
       // aomenc1
       if (cpi->sf.inter_sf.comp_inter_joint_search_thresh <= bsize ||
           !valid_mv0 || !valid_mv1) {
+        mbmi->compound_idx = 1;
+#if !CONFIG_REMOVE_DIST_WTD_COMP
+        InterPredParams inter_pred_params;
+        av1_dist_wtd_comp_weight_assign(
+            &cpi->common, mbmi, 0, &inter_pred_params.conv_params.fwd_offset,
+            &inter_pred_params.conv_params.bck_offset,
+            &inter_pred_params.conv_params.use_dist_wtd_comp_avg, 1);
+        uint8_t mask_value = inter_pred_params.conv_params.fwd_offset * 4;
+        memset(xd->seg_mask, mask_value, sizeof(xd->seg_mask));
+        av1_joint_motion_search(cpi, x, bsize, cur_mv, xd->seg_mask,
+                                block_size_wide[bsize], rate_mv);
+#else
+        // uint8_t mask_value = 32;
         av1_joint_motion_search(cpi, x, bsize, cur_mv, NULL, 0, rate_mv);
+#endif  // !CONFIG_REMOVE_DIST_WTD_COMP
       } else {
         *rate_mv = 0;
         for (int i = 0; i < 2; ++i) {