]> granicus.if.org Git - libvpx/commitdiff
Fix arithmetic overflow warnings.
authorMarco <marpan@google.com>
Thu, 26 Feb 2015 22:27:16 +0000 (14:27 -0800)
committerMarco <marpan@google.com>
Thu, 26 Feb 2015 23:27:21 +0000 (15:27 -0800)
Change-Id: Ib85b5bc135aa0907a76b8c74faafe577e27d014f

vp9/encoder/vp9_aq_cyclicrefresh.c

index ff08f04e6a1d4ab085f6fbcfaa1ae63463b9e6f5..154068052c7c3db569aa01a29928fd44813c3a8c 100644 (file)
@@ -368,9 +368,11 @@ void vp9_cyclic_refresh_setup(VP9_COMP *const cpi) {
     cr->time_for_refresh = 0;
     // Set rate threshold to some multiple (set to 2 for now) of the target
     // rate (target is given by sb64_target_rate and scaled by 256).
-    cr->thresh_rate_sb = (rc->sb64_target_rate << 8) << 1;
+    cr->thresh_rate_sb = ((int64_t)(rc->sb64_target_rate) << 8) << 1;
     // Distortion threshold, quadratic in Q, scale factor to be adjusted.
-    cr->thresh_dist_sb = (int)(q * q) << 2;
+    // q will not exceed 457, so (q * q) is within 32bit; see:
+    // vp9_convert_qindex_to_q(), vp9_ac_quant(), ac_qlookup*[].
+    cr->thresh_dist_sb = ((int64_t)(q * q)) << 2;
     cr->motion_thresh = 32;
     // Set up segmentation.
     // Clear down the segment map.