From: Yunqing Wang Date: Wed, 2 Jul 2014 19:16:27 +0000 (-0700) Subject: Fix rd threshold overflow issue X-Git-Tag: v1.4.0~1272^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3bc119320103e9afa4033370df8a141c68cbbe60;p=libvpx Fix rd threshold overflow issue Moved the threshold adjustment before reference flag checking, which could set the threshold to INT_MAX for disabled reference frame, and cause overflow if the adjustment is done after that. Change-Id: I85e94f8726d5e3ae93f65965aa978721dddc9957 --- diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index e1a03a62f..a4cdd33ec 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -4289,6 +4289,10 @@ void vp9_set_rd_speed_thresholds(VP9_COMP *cpi) { rd->thresh_mult[THR_NEWA] += 1000; rd->thresh_mult[THR_NEWG] += 1000; + // Adjust threshold only in real time mode, which only use last reference + // frame. + rd->thresh_mult[THR_NEWMV] += sf->elevate_newmv_thresh; + rd->thresh_mult[THR_NEARMV] += 1000; rd->thresh_mult[THR_NEARA] += 1000; rd->thresh_mult[THR_COMP_NEARESTLA] += 1000; @@ -4351,10 +4355,6 @@ void vp9_set_rd_speed_thresholds(VP9_COMP *cpi) { rd->thresh_mult[THR_COMP_NEARGA ] = INT_MAX; rd->thresh_mult[THR_COMP_NEWGA ] = INT_MAX; } - - // Adjust threshold only in real time mode, which only use last reference - // frame. - rd->thresh_mult[THR_NEWMV] += sf->elevate_newmv_thresh; } void vp9_set_rd_speed_thresholds_sub8x8(VP9_COMP *cpi) {