shithub: libvpx

Download patch

ref: 79774d108ff525bc1aeeb61b2d2e597b4c798a5b
parent: b1781b48dbdc77aeca06a8edcb67ec8b268c6608
author: Paul Wilkins <paulwilkins@google.com>
date: Wed Dec 7 08:32:45 EST 2011

Minor fixes:

fixed issues caused by conflicts between two experiments.

Change-Id: I56a9bd69493e4850c121ea057a6233c55777c2a5

--- a/vp8/decoder/decodemv.c
+++ b/vp8/decoder/decodemv.c
@@ -692,8 +692,13 @@
             }
             if (mbmi->second_ref_frame)
             {
-                vp8_find_near_mvs(xd, mi, &nearest, &nearby, &best_mv, rct,
-                                  mbmi->second_ref_frame, pbi->common.ref_frame_sign_bias);
+                vp8_find_near_mvs(xd, mi,
+#if CONFIG_NEWNEAR
+                                  prev_mi,
+#endif
+                                  &nearest, &nearby, &best_mv, rct,
+                                  (int)mbmi->second_ref_frame,
+                                  pbi->common.ref_frame_sign_bias);
                 switch (mbmi->mode) {
                 case ZEROMV:
                     mbmi->second_mv.as_int = 0;
--- a/vp8/encoder/bitstream.c
+++ b/vp8/encoder/bitstream.c
@@ -1207,7 +1207,13 @@
                             const int second_rf = mi->second_ref_frame;
                             int_mv n1, n2;
                             int ct[4];
-                            vp8_find_near_mvs(xd, m, &n1, &n2, &best_mv, ct, second_rf, cpi->common.ref_frame_sign_bias);
+                            vp8_find_near_mvs(xd, m,
+#if CONFIG_NEWNEAR
+                                              prev_m,
+#endif
+                                              &n1, &n2, &best_mv,
+                                              ct, second_rf,
+                                              cpi->common.ref_frame_sign_bias);
                             write_mv(w, &mi->second_mv.as_mv, &best_mv, mvc);
                         }
 #endif /* CONFIG_DUALPRED */
--- a/vp8/encoder/rdopt.c
+++ b/vp8/encoder/rdopt.c
@@ -2555,10 +2555,12 @@
             vp8_build_inter16x16_predictors_mby(&x->e_mbd);
 
 #if CONFIG_DUALPRED
-            MB_MODE_INFO *t = &x->e_mbd.mode_info_context[-cpi->common.mode_info_stride].mbmi;
-            MB_MODE_INFO *l = &x->e_mbd.mode_info_context[-1].mbmi;
-            int cnt = (t->second_ref_frame != INTRA_FRAME) + (l->second_ref_frame != INTRA_FRAME);
-            dualmode_cost = vp8_cost_bit(cpi->prob_dualpred[cnt], 0);
+            {
+                MB_MODE_INFO *t = &x->e_mbd.mode_info_context[-cpi->common.mode_info_stride].mbmi;
+                MB_MODE_INFO *l = &x->e_mbd.mode_info_context[-1].mbmi;
+                int cnt = (t->second_ref_frame != INTRA_FRAME) + (l->second_ref_frame != INTRA_FRAME);
+                dualmode_cost = vp8_cost_bit(cpi->prob_dualpred[cnt], 0);
+            }
 #endif /* CONFIG_DUALPRED */
 
             if (cpi->active_map_enabled && x->active_ptr[0] == 0) {
@@ -2713,10 +2715,12 @@
             /* We don't include the cost of the second reference here, because there are only
              * three options: Last/Golden, ARF/Last or Golden/ARF, or in other words if you
              * present them in that order, the second one is always known if the first is known */
-            MB_MODE_INFO *t = &x->e_mbd.mode_info_context[-cpi->common.mode_info_stride].mbmi;
-            MB_MODE_INFO *l = &x->e_mbd.mode_info_context[-1].mbmi;
-            int cnt = (t->second_ref_frame != INTRA_FRAME) + (l->second_ref_frame != INTRA_FRAME);
-            dualmode_cost = vp8_cost_bit(cpi->prob_dualpred[cnt], 1);
+            {
+                MB_MODE_INFO *t = &x->e_mbd.mode_info_context[-cpi->common.mode_info_stride].mbmi;
+                MB_MODE_INFO *l = &x->e_mbd.mode_info_context[-1].mbmi;
+                int cnt = (t->second_ref_frame != INTRA_FRAME) + (l->second_ref_frame != INTRA_FRAME);
+                dualmode_cost = vp8_cost_bit(cpi->prob_dualpred[cnt], 1);
+            }
         }
 #endif /* CONFIG_DUALPRED */