]> granicus.if.org Git - libvpx/commitdiff
Fix enc/dec mismatch in dynamic mv referenceing experiment
authorJingning Han <jingning@google.com>
Wed, 17 Feb 2016 17:27:08 +0000 (09:27 -0800)
committerJingning Han <jingning@google.com>
Wed, 17 Feb 2016 17:29:54 +0000 (09:29 -0800)
This commit fixes an enc/dec mismatch in the dynamic motion vector
referencing experiment introduced in 837ef00.

Change-Id: I9fbe116fce118a80ef0f96bf41ce1f802547c2ee

vp10/encoder/rdopt.c

index 736adbbab245acbc73ff49ef45a33d60626ae82c..f77a66eb210d06f7875e5f4580be6955268b109b 100644 (file)
@@ -5334,8 +5334,9 @@ static int64_t handle_inter_mode(VP10_COMP *cpi, MACROBLOCK *x,
   if (this_mode == NEARMV && is_comp_pred) {
     uint8_t ref_frame_type = vp10_ref_frame_type(mbmi->ref_frame);
     if (mbmi_ext->ref_mv_count[ref_frame_type] > 1) {
-      cur_mv[0] = mbmi_ext->ref_mv_stack[ref_frame_type][1].this_mv;
-      cur_mv[1] = mbmi_ext->ref_mv_stack[ref_frame_type][1].comp_mv;
+      int ref_mv_idx = mbmi->ref_mv_idx + 1;
+      cur_mv[0] = mbmi_ext->ref_mv_stack[ref_frame_type][ref_mv_idx].this_mv;
+      cur_mv[1] = mbmi_ext->ref_mv_stack[ref_frame_type][ref_mv_idx].comp_mv;
 
       for (i = 0; i < 2; ++i) {
         lower_mv_precision(&cur_mv[i].as_mv, cm->allow_high_precision_mv);