diff --git a/vp10/encoder/rdopt.c b/vp10/encoder/rdopt.c index 8ba211017..d87d16418 100644 --- a/vp10/encoder/rdopt.c +++ b/vp10/encoder/rdopt.c @@ -3017,9 +3017,9 @@ static void rd_variance_adjustment(VP10_COMP *cpi, ? (source_variance - recon_variance) : (recon_variance - source_variance); - var_error = (200 * source_variance * recon_variance) / - ((source_variance * source_variance) + - (recon_variance * recon_variance)); + var_error = ((int64_t)200 * source_variance * recon_variance) / + (((int64_t)source_variance * source_variance) + + ((int64_t)recon_variance * recon_variance)); var_error = 100 - var_error; } diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index ae1446417..2a6b70703 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -2831,9 +2831,9 @@ static void rd_variance_adjustment(VP9_COMP *cpi, ? (source_variance - recon_variance) : (recon_variance - source_variance); - var_error = (200 * source_variance * recon_variance) / - ((source_variance * source_variance) + - (recon_variance * recon_variance)); + var_error = ((int64_t)200 * source_variance * recon_variance) / + (((int64_t)source_variance * source_variance) + + ((int64_t)recon_variance * recon_variance)); var_error = 100 - var_error; }