aboutsummaryrefslogtreecommitdiff
path: root/vp8
diff options
context:
space:
mode:
authorJames Zern <jzern@google.com>2021-11-08 12:57:12 -0800
committerJames Zern <jzern@google.com>2021-11-08 13:09:21 -0800
commit23796337ce5b0a2f58eb7386c9aded5e6a4b84f6 (patch)
treeca23cf6e82dcf4c0b008f6acebbcdb264b0d2844 /vp8
parent69d08cb9d33af163ebef67d8c4dc45c897106905 (diff)
downloadlibvpx-23796337ce5b0a2f58eb7386c9aded5e6a4b84f6.tar.gz
vp8,calc_pframe_target_size: fix integer overflow
this is similar to the fix for calc_iframe_target_size: 5f345a924 Avoid overflow in calc_iframe_target_size Bug: chromium:1264506 Change-Id: I2f0e161cf9da59ca0724692d581f1594c8098ebb
Diffstat (limited to 'vp8')
-rw-r--r--vp8/encoder/ratectrl.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/vp8/encoder/ratectrl.c b/vp8/encoder/ratectrl.c
index d591680ce..3df34009a 100644
--- a/vp8/encoder/ratectrl.c
+++ b/vp8/encoder/ratectrl.c
@@ -781,6 +781,7 @@ static void calc_pframe_target_size(VP8_COMP *cpi) {
}
} else {
int percent_high = 0;
+ int64_t target = cpi->this_frame_target;
if ((cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) &&
(cpi->buffer_level > cpi->oxcf.optimal_buffer_level)) {
@@ -798,7 +799,9 @@ static void calc_pframe_target_size(VP8_COMP *cpi) {
percent_high = 0;
}
- cpi->this_frame_target += (cpi->this_frame_target * percent_high) / 200;
+ target += (target * percent_high) / 200;
+ target = VPXMIN(target, INT_MAX);
+ cpi->this_frame_target = (int)target;
/* Are we allowing control of active_worst_allowed_q according
* to buffer level.