Fixed incorrect casts that broke rate control in some situations.
This commit is contained in:
parent
0fc9abfbfd
commit
c012d63ec9
@ -1170,7 +1170,8 @@ void vp8_update_rate_correction_factors(VP8_COMP *cpi, int damp_var)
|
|||||||
while (Z > 0)
|
while (Z > 0)
|
||||||
{
|
{
|
||||||
Z --;
|
Z --;
|
||||||
projected_size_based_on_q *= (int)Factor;
|
projected_size_based_on_q =
|
||||||
|
(int)(Factor * projected_size_based_on_q);
|
||||||
Factor += factor_adjustment;
|
Factor += factor_adjustment;
|
||||||
|
|
||||||
if (Factor >= 0.999)
|
if (Factor >= 0.999)
|
||||||
@ -1361,7 +1362,9 @@ int vp8_regulate_q(VP8_COMP *cpi, int target_bits_per_frame)
|
|||||||
if (cpi->zbin_over_quant > zbin_oqmax)
|
if (cpi->zbin_over_quant > zbin_oqmax)
|
||||||
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;
|
Factor += factor_adjustment;
|
||||||
|
|
||||||
if (Factor >= 0.999)
|
if (Factor >= 0.999)
|
||||||
|
@ -265,7 +265,7 @@ void vp8_initialize_rd_consts(VP8_COMP *cpi, int Qvalue)
|
|||||||
if (oq_factor > (1.0 + ((double)cpi->zbin_over_quant / 64.0)))
|
if (oq_factor > (1.0 + ((double)cpi->zbin_over_quant / 64.0)))
|
||||||
oq_factor = (1.0 + (double)cpi->zbin_over_quant / 64.0);
|
oq_factor = (1.0 + (double)cpi->zbin_over_quant / 64.0);
|
||||||
|
|
||||||
cpi->RDMULT *= (int)oq_factor;
|
cpi->RDMULT = (int)(oq_factor * cpi->RDMULT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user