From: Adrian Grange Date: Tue, 10 Mar 2015 19:04:59 +0000 (-0700) Subject: Clamp rate correction factor after scaling it X-Git-Tag: v1.4.0~59^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=42a89eb8cc0e80ff657f30f264e9c27630682094;p=libvpx Clamp rate correction factor after scaling it Added clamp on the rate correction factor after it has been scaled. Change-Id: I5d4b46a101987b43c5bcfd7e0bd1b7b4d53640a4 --- diff --git a/vp9/encoder/vp9_ratectrl.c b/vp9/encoder/vp9_ratectrl.c index 79a89af90..8916e1107 100644 --- a/vp9/encoder/vp9_ratectrl.c +++ b/vp9/encoder/vp9_ratectrl.c @@ -377,7 +377,7 @@ static double get_rate_correction_factor(const VP9_COMP *cpi) { rcf = rc->rate_correction_factors[INTER_NORMAL]; } rcf *= rcf_mult[rc->frame_size_selector]; - return rcf > MAX_BPB_FACTOR ? MAX_BPB_FACTOR : rcf; + return fclamp(rcf, MIN_BPB_FACTOR, MAX_BPB_FACTOR); } static void set_rate_correction_factor(VP9_COMP *cpi, double factor) { @@ -386,6 +386,8 @@ static void set_rate_correction_factor(VP9_COMP *cpi, double factor) { // Normalize RCF to account for the size-dependent scaling factor. factor /= rcf_mult[cpi->rc.frame_size_selector]; + factor = fclamp(factor, MIN_BPB_FACTOR, MAX_BPB_FACTOR); + if (cpi->common.frame_type == KEY_FRAME) { rc->rate_correction_factors[KF_STD] = factor; } else if (cpi->oxcf.pass == 2) {