Fixed incorrect casts that broke rate control in some situations.
diff --git a/vp8/encoder/ratectrl.c b/vp8/encoder/ratectrl.c
index ad54c5e..7ab9605 100644
--- a/vp8/encoder/ratectrl.c
+++ b/vp8/encoder/ratectrl.c
@@ -1170,7 +1170,8 @@
while (Z > 0)
{
Z --;
- projected_size_based_on_q *= (int)Factor;
+ projected_size_based_on_q =
+ (int)(Factor * projected_size_based_on_q);
Factor += factor_adjustment;
if (Factor >= 0.999)
@@ -1361,7 +1362,9 @@
if (cpi->zbin_over_quant > zbin_oqmax)
cpi->zbin_over_quant = zbin_oqmax;
- bits_per_mb_at_this_q *= (int)Factor; // Each over-ruin step is assumed to equate to approximately 3% reduction in bitrate
+ // Each over-run step is assumed to equate to approximately
+ // 3% reduction in bitrate
+ bits_per_mb_at_this_q = (int)(Factor * bits_per_mb_at_this_q);
Factor += factor_adjustment;
if (Factor >= 0.999)