summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vp8/decoder/decodemv.c9
-rw-r--r--vp8/encoder/bitstream.c8
-rw-r--r--vp8/encoder/rdopt.c20
3 files changed, 26 insertions, 11 deletions
diff --git a/vp8/decoder/decodemv.c b/vp8/decoder/decodemv.c
index df2b85349..8934b62a8 100644
--- a/vp8/decoder/decodemv.c
+++ b/vp8/decoder/decodemv.c
@@ -692,8 +692,13 @@ static void read_mb_modes_mv(VP8D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
}
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;
diff --git a/vp8/encoder/bitstream.c b/vp8/encoder/bitstream.c
index d3e61699f..43182b10d 100644
--- a/vp8/encoder/bitstream.c
+++ b/vp8/encoder/bitstream.c
@@ -1207,7 +1207,13 @@ static void pack_inter_mode_mvs(VP8_COMP *const cpi)
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 */
diff --git a/vp8/encoder/rdopt.c b/vp8/encoder/rdopt.c
index fd5bd2e39..00055f9f1 100644
--- a/vp8/encoder/rdopt.c
+++ b/vp8/encoder/rdopt.c
@@ -2555,10 +2555,12 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
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 @@ void vp8_rd_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, int
/* 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 */