summaryrefslogtreecommitdiff
path: root/vp8/encoder/ratectrl.c
diff options
context:
space:
mode:
Diffstat (limited to 'vp8/encoder/ratectrl.c')
-rw-r--r--vp8/encoder/ratectrl.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/vp8/encoder/ratectrl.c b/vp8/encoder/ratectrl.c
index e1c8c4eb7..4dc078a1d 100644
--- a/vp8/encoder/ratectrl.c
+++ b/vp8/encoder/ratectrl.c
@@ -353,7 +353,7 @@ static void calc_iframe_target_size(VP8_COMP *cpi)
{
/* boost defaults to half second */
int kf_boost;
- unsigned int target;
+ uint64_t target;
/* Clear down mmx registers to allow floating point in what follows */
vp8_clear_system_state();
@@ -423,7 +423,7 @@ static void calc_iframe_target_size(VP8_COMP *cpi)
target = max_rate;
}
- cpi->this_frame_target = target;
+ cpi->this_frame_target = (int)target;
/* TODO: if we separate rate targeting from Q targetting, move this.
* Reset the active worst quality to the baseline value for key frames.
@@ -747,7 +747,8 @@ static void calc_pframe_target_size(VP8_COMP *cpi)
/* Adapt target frame size with respect to any buffering constraints: */
if (cpi->buffered_mode)
{
- int one_percent_bits = 1 + cpi->oxcf.optimal_buffer_level / 100;
+ int one_percent_bits = (int)
+ (1 + cpi->oxcf.optimal_buffer_level / 100);
if ((cpi->buffer_level < cpi->oxcf.optimal_buffer_level) ||
(cpi->bits_off_target < cpi->oxcf.optimal_buffer_level))
@@ -764,9 +765,9 @@ static void calc_pframe_target_size(VP8_COMP *cpi)
if ((cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) &&
(cpi->buffer_level < cpi->oxcf.optimal_buffer_level))
{
- percent_low =
- (cpi->oxcf.optimal_buffer_level - cpi->buffer_level) /
- one_percent_bits;
+ percent_low = (int)
+ ((cpi->oxcf.optimal_buffer_level - cpi->buffer_level) /
+ one_percent_bits);
}
/* Are we overshooting the long term clip data rate... */
else if (cpi->bits_off_target < 0)
@@ -790,7 +791,7 @@ static void calc_pframe_target_size(VP8_COMP *cpi)
*/
if (cpi->auto_worst_q && cpi->ni_frames > 150)
{
- int critical_buffer_level;
+ int64_t critical_buffer_level;
/* For streaming applications the most important factor is
* cpi->buffer_level as this takes into account the
@@ -841,7 +842,7 @@ static void calc_pframe_target_size(VP8_COMP *cpi)
*/
cpi->active_worst_quality =
cpi->worst_quality -
- ((qadjustment_range * above_base) /
+ (int)((qadjustment_range * above_base) /
(cpi->oxcf.optimal_buffer_level*3>>2));
}
else
@@ -866,9 +867,9 @@ static void calc_pframe_target_size(VP8_COMP *cpi)
if ((cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER)
&& (cpi->buffer_level > cpi->oxcf.optimal_buffer_level))
{
- percent_high = (cpi->buffer_level
+ percent_high = (int)((cpi->buffer_level
- cpi->oxcf.optimal_buffer_level)
- / one_percent_bits;
+ / one_percent_bits);
}
else if (cpi->bits_off_target > cpi->oxcf.optimal_buffer_level)
{
@@ -956,7 +957,7 @@ static void calc_pframe_target_size(VP8_COMP *cpi)
/* Update the buffer level variable. */
cpi->bits_off_target += cpi->av_per_frame_bandwidth;
if (cpi->bits_off_target > cpi->oxcf.maximum_buffer_size)
- cpi->bits_off_target = cpi->oxcf.maximum_buffer_size;
+ cpi->bits_off_target = (int)cpi->oxcf.maximum_buffer_size;
cpi->buffer_level = cpi->bits_off_target;
}
}