ref: caa1b28be3abb8173607601b733be5f1e00a6466
parent: dba79821f067ba27a8a31572293b9cdbd0d9d2d2
author: James Berry <jamesberry@google.com>
date: Thu May 19 14:02:48 EDT 2011
bug fix active_worst_quality set below active_best_quality fixed a bug where active_worst_quality could be set below active_best_quality which could result in an infinite loop. Change-Id: I93c229c3bc5bff2a82b4c33f41f8acf4dd194039
--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -3427,15 +3427,15 @@
buff_lvl_step = (cpi->oxcf.maximum_buffer_size - cpi->oxcf.optimal_buffer_level) / Adjustment;
if (buff_lvl_step)
- {
Adjustment = (cpi->buffer_level - cpi->oxcf.optimal_buffer_level) / buff_lvl_step;
- cpi->active_worst_quality -= Adjustment;
- }
+ else
+ Adjustment = 0;
}
- else
- {
- cpi->active_worst_quality -= Adjustment;
- }
+
+ cpi->active_worst_quality -= Adjustment;
+
+ if(cpi->active_worst_quality < cpi->active_best_quality)
+ cpi->active_worst_quality = cpi->active_best_quality;
}
}
--
⑨