diff --git a/vpx_dsp/prob.h b/vpx_dsp/prob.h index 148116ed0..3127a00bb 100644 --- a/vpx_dsp/prob.h +++ b/vpx_dsp/prob.h @@ -47,11 +47,12 @@ static INLINE vpx_prob clip_prob(int p) { return (p > 255) ? 255 : (p < 1) ? 1 : p; } -static INLINE vpx_prob get_prob(int num, int den) { - return (den == 0) ? 128u : clip_prob(((int64_t)num * 256 + (den >> 1)) / den); +static INLINE vpx_prob get_prob(unsigned int num, unsigned int den) { + if (den == 0) return 128u; + return clip_prob((int)(((int64_t)num * 256 + (den >> 1)) / den)); } -static INLINE vpx_prob get_binary_prob(int n0, int n1) { +static INLINE vpx_prob get_binary_prob(unsigned int n0, unsigned int n1) { return get_prob(n0, n0 + n1); } @@ -83,8 +84,7 @@ static INLINE vpx_prob mode_mv_merge_probs(vpx_prob pre_prob, } else { const unsigned int count = VPXMIN(den, MODE_MV_COUNT_SAT); const unsigned int factor = count_to_update_factor[count]; - const vpx_prob prob = - clip_prob(((int64_t)(ct[0]) * 256 + (den >> 1)) / den); + const vpx_prob prob = get_prob(ct[0], den); return weighted_prob(pre_prob, prob, factor); } }