Limit new motion vector size

This commit adds clamp of new vectors similar to the logic in RD loop.
Such clamp is not necessary from the perspective of VP8 bitstream, but
is added to improve ChromeCast mirroring's robustness.

Change-Id: I42f6adbc60ffce283b994869364230858632d6fa
This commit is contained in:
Yaowu Xu 2015-08-24 19:09:03 -07:00
parent d88ca3c335
commit a1ec3eb326

View File

@ -1240,7 +1240,10 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset,
}
mode_mv[NEWMV].as_int = d->bmi.mv.as_int;
// The clamp below is not necessary from the perspective
// of VP8 bitstream, but is added to improve ChromeCast
// mirroring's robustness. Please do not remove.
vp8_clamp_mv2(&mode_mv[this_mode], xd);
/* mv cost; */
rate2 += vp8_mv_bit_cost(&mode_mv[NEWMV], &best_ref_mv,
cpi->mb.mvcost, 128);
@ -1248,7 +1251,6 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset,
case NEARESTMV:
case NEARMV:
if (mode_mv[this_mode].as_int == 0)
continue;