]> granicus.if.org Git - libvpx/commitdiff
vp8: make gf_group_bits 64-bit
authorJames Zern <jzern@google.com>
Fri, 22 Feb 2013 19:46:34 +0000 (11:46 -0800)
committerJames Zern <jzern@google.com>
Fri, 22 Feb 2013 20:45:28 +0000 (12:45 -0800)
avoids signed integer overflow; matches kf_group_bits

Change-Id: I193145cdc4fa53e70fba0a1731a03eb1a574931d

vp8/encoder/firstpass.c
vp8/encoder/onyx_int.h
vp9/encoder/vp9_firstpass.c

index 68095ca68347749c3fd88794f69d13c13af38b39..406113dbb3ad9a3e1fd0975116373039e04d7632 100644 (file)
@@ -2131,8 +2131,10 @@ static void define_gf_group(VP8_COMP *cpi, FIRSTPASS_STATS *this_frame)
     /* Clip cpi->twopass.gf_group_bits based on user supplied data rate
      * variability limit (cpi->oxcf.two_pass_vbrmax_section)
      */
-    if (cpi->twopass.gf_group_bits > max_bits * cpi->baseline_gf_interval)
-        cpi->twopass.gf_group_bits = max_bits * cpi->baseline_gf_interval;
+    if (cpi->twopass.gf_group_bits >
+        (int64_t)max_bits * cpi->baseline_gf_interval)
+        cpi->twopass.gf_group_bits =
+            (int64_t)max_bits * cpi->baseline_gf_interval;
 
     /* Reset the file position */
     reset_fpf_position(cpi, start_pos);
index fb8ad357c02b5ae0971d745d44ad1fc7d30154c4..378731d0a7a81c1e813cc43e23763b6b71928406 100644 (file)
@@ -587,7 +587,7 @@ typedef struct VP8_COMP
         /* Error score of frames still to be coded in kf group */
         int64_t kf_group_error_left;
         /* Projected Bits available for a group including 1 GF or ARF */
-        int gf_group_bits;
+        int64_t gf_group_bits;
         /* Bits for the golden frame or ARF */
         int gf_bits;
         int alt_extra_bits;
index db981754eeb04b359cb29d347329c8636f8165fc..f38e5397bf96e27544b655a0b6b402cb6a0fddab 100644 (file)
@@ -1707,8 +1707,9 @@ static void define_gf_group(VP9_COMP *cpi, FIRSTPASS_STATS *this_frame) {
 
   // Clip cpi->twopass.gf_group_bits based on user supplied data rate
   // variability limit (cpi->oxcf.two_pass_vbrmax_section)
-  if (cpi->twopass.gf_group_bits > max_bits * cpi->baseline_gf_interval)
-    cpi->twopass.gf_group_bits = max_bits * cpi->baseline_gf_interval;
+  if (cpi->twopass.gf_group_bits >
+      (int64_t)max_bits * cpi->baseline_gf_interval)
+    cpi->twopass.gf_group_bits = (int64_t)max_bits * cpi->baseline_gf_interval;
 
   // Reset the file position
   reset_fpf_position(cpi, start_pos);