shithub: libvpx

Download patch

ref: 12ae6eaf21274876ef1c02124620c186c4c3cff2
parent: 323a7120b9e92cd9e59ab7e72097a461d1324fd8
author: Deb Mukherjee <debargha@google.com>
date: Fri Feb 14 05:12:38 EST 2014

Enforce max-intra-pct in one-pass cbr mode

This was inadvertently left out in a previous refactoring step.

Change-Id: Idf3350e95152f876a1a1a4591dd30c8981856c96

--- a/vp9/encoder/vp9_ratectrl.c
+++ b/vp9/encoder/vp9_ratectrl.c
@@ -1338,9 +1338,10 @@
 
 static int calc_iframe_target_size_one_pass_cbr(const VP9_COMP *cpi) {
   const RATE_CONTROL *rc = &cpi->rc;
+  int target;
 
   if (cpi->common.current_video_frame == 0) {
-    return ((cpi->oxcf.starting_buffer_level / 2) > INT_MAX)
+    target = ((cpi->oxcf.starting_buffer_level / 2) > INT_MAX)
       ? INT_MAX : (int)(cpi->oxcf.starting_buffer_level / 2);
   } else {
     const int initial_boost = 32;
@@ -1349,8 +1350,9 @@
       kf_boost = (int)(kf_boost * rc->frames_since_key /
                        (cpi->output_framerate / 2));
     }
-    return ((16 + kf_boost) * rc->av_per_frame_bandwidth) >> 4;
+    target = ((16 + kf_boost) * rc->av_per_frame_bandwidth) >> 4;
   }
+  return vp9_rc_clamp_iframe_target_size(cpi, target);
 }
 
 void vp9_rc_get_svc_params(VP9_COMP *cpi) {
--