| Index: source/libvpx/vp9/encoder/vp9_pickmode.c
|
| diff --git a/source/libvpx/vp9/encoder/vp9_pickmode.c b/source/libvpx/vp9/encoder/vp9_pickmode.c
|
| index 2c78831832e78cac556630b433a369d0336b297d..3eaa99054ce22cdbbe7281293f53dacfcd1ccc46 100644
|
| --- a/source/libvpx/vp9/encoder/vp9_pickmode.c
|
| +++ b/source/libvpx/vp9/encoder/vp9_pickmode.c
|
| @@ -658,7 +658,8 @@ static void block_yrd(VP9_COMP *cpi, MACROBLOCK *x, int *rate, int64_t *dist,
|
| block = 0;
|
| *rate = 0;
|
| *dist = 0;
|
| - *sse = (*sse << 6) >> shift;
|
| + if (*sse < INT64_MAX)
|
| + *sse = (*sse << 6) >> shift;
|
| for (r = 0; r < max_blocks_high; r += block_step) {
|
| for (c = 0; c < num_4x4_w; c += block_step) {
|
| if (c < max_blocks_wide) {
|
| @@ -1179,7 +1180,8 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
|
|
|
| if (cm->use_prev_frame_mvs)
|
| vp9_find_mv_refs(cm, xd, tile_info, xd->mi[0], ref_frame,
|
| - candidates, mi_row, mi_col, NULL, NULL);
|
| + candidates, mi_row, mi_col, NULL, NULL,
|
| + xd->mi[0]->mbmi.mode_context);
|
| else
|
| const_motion[ref_frame] = mv_refs_rt(cm, xd, tile_info,
|
| xd->mi[0],
|
| @@ -1658,7 +1660,8 @@ void vp9_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
|
| vp9_setup_pred_block(xd, yv12_mb[ref_frame], yv12, mi_row, mi_col,
|
| sf, sf);
|
| vp9_find_mv_refs(cm, xd, tile_info, xd->mi[0], ref_frame,
|
| - candidates, mi_row, mi_col, NULL, NULL);
|
| + candidates, mi_row, mi_col, NULL, NULL,
|
| + xd->mi[0]->mbmi.mode_context);
|
|
|
| vp9_find_best_ref_mvs(xd, cm->allow_high_precision_mv, candidates,
|
| &dummy_mv[0], &dummy_mv[1]);
|
| @@ -1690,8 +1693,8 @@ void vp9_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
|
|
|
| // If the segment reference frame feature is enabled....
|
| // then do nothing if the current ref frame is not allowed..
|
| - if (vp9_segfeature_active(seg, segment_id, SEG_LVL_REF_FRAME) &&
|
| - vp9_get_segdata(seg, segment_id, SEG_LVL_REF_FRAME) != (int)ref_frame)
|
| + if (segfeature_active(seg, segment_id, SEG_LVL_REF_FRAME) &&
|
| + get_segdata(seg, segment_id, SEG_LVL_REF_FRAME) != (int)ref_frame)
|
| continue;
|
|
|
| mbmi->ref_frame[0] = ref_frame;
|
| @@ -1732,7 +1735,8 @@ void vp9_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
|
| b_mv[NEWMV].as_int = INVALID_MV;
|
| vp9_append_sub8x8_mvs_for_idx(cm, xd, tile_info, i, 0, mi_row, mi_col,
|
| &b_mv[NEARESTMV],
|
| - &b_mv[NEARMV]);
|
| + &b_mv[NEARMV],
|
| + xd->mi[0]->mbmi.mode_context);
|
|
|
| for (this_mode = NEARESTMV; this_mode <= NEWMV; ++this_mode) {
|
| int b_rate = 0;
|
|
|