From: James Berry Date: Thu, 19 May 2011 22:02:48 +0000 (-0400) Subject: bug fix active_worst_quality set below active_best_quality X-Git-Tag: v0.9.7~140^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=caa1b28be3abb8173607601b733be5f1e00a6466;p=libvpx 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 --- diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index 20d5539c7..a2fd186e0 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -3427,15 +3427,15 @@ static void encode_frame_to_data_rate 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 - { - cpi->active_worst_quality -= Adjustment; + else + Adjustment = 0; } + + cpi->active_worst_quality -= Adjustment; + + if(cpi->active_worst_quality < cpi->active_best_quality) + cpi->active_worst_quality = cpi->active_best_quality; } }