shithub: libvpx

Download patch

ref: 3f2b254c38030d86dd6c4bda6a688397aa2b804f
parent: 1cf31428ff9ee3ac7c9b63685132369fb33b50b2
parent: a4c0b3531ef6dab7421efb87916fdeb8a5135895
author: Adrian Grange <[email protected]>
date: Wed Apr 17 10:50:39 EDT 2013

Merge "Make alt_extra_bits a local variable" into experimental

--- a/vp9/encoder/vp9_firstpass.c
+++ b/vp9/encoder/vp9_firstpass.c
@@ -1980,7 +1980,7 @@
 
     // This condition could fail if there are two kfs very close together
     // despite (MIN_GF_INTERVAL) and would cause a divide by 0 in the
-    // calculation of cpi->twopass.alt_extra_bits.
+    // calculation of alt_extra_bits.
     if (cpi->baseline_gf_interval >= 3) {
       int boost = (cpi->source_alt_ref_pending)
                   ? b_boost : cpi->gfu_boost;
@@ -1987,20 +1987,15 @@
 
       if (boost >= 150) {
         int pct_extra;
+        int alt_extra_bits;
 
         pct_extra = (boost - 100) / 50;
         pct_extra = (pct_extra > 20) ? 20 : pct_extra;
 
-        // TODO(agrange) Remove cpi->twopass.alt_extra_bits.
-        cpi->twopass.alt_extra_bits = (int)
-          ((cpi->twopass.gf_group_bits * pct_extra) / 100);
-        cpi->twopass.gf_group_bits -= cpi->twopass.alt_extra_bits;
-        cpi->twopass.alt_extra_bits /=
-          ((cpi->baseline_gf_interval - 1) >> 1);
-      } else
-        cpi->twopass.alt_extra_bits = 0;
-    } else
-      cpi->twopass.alt_extra_bits = 0;
+        alt_extra_bits = (int)((cpi->twopass.gf_group_bits * pct_extra) / 100);
+        cpi->twopass.gf_group_bits -= alt_extra_bits;
+      }
+    }
   }
 
   if (cpi->common.frame_type != KEY_FRAME) {