Commit ebcc6605 authored by Yaowu Xu's avatar Yaowu Xu
Browse files

fixed a crash caused invalid Q choice

The commit fixed a problem by capping cpi->active_best_quality to be
smaller than cpi->worst_quality.  Also fixed a few line of code that
was misplaced.

Change-Id: Ie908264b72140c669122a0afde5d886619c33474
parent b70f23ca
......@@ -4180,6 +4180,9 @@ static void encode_frame_to_data_rate
if (cpi->active_best_quality < cpi->best_quality)
cpi->active_best_quality = cpi->best_quality;
if (cpi->active_best_quality > cpi->worst_quality)
cpi->active_best_quality = cpi->worst_quality;
if ( cpi->active_worst_quality < cpi->active_best_quality )
cpi->active_worst_quality = cpi->active_best_quality;
......
......@@ -965,18 +965,17 @@ void vp8cx_init_quantizer(VP8_COMP *cpi)
int i;
int quant_val;
int Q;
int zbin_boost[16] = {0, 0, 8, 10, 12, 14, 16, 20, 24, 28, 32, 36, 40, 44, 44, 44};
int zbin_boost[16] = { 0, 0, 8, 10, 12, 14, 16, 20,
24, 28, 32, 36, 40, 44, 44, 44};
int qrounding_factor = 48;
#if CONFIG_EXTEND_QRANGE
int qzbin_factor = (vp8_dc_quant(Q,0) < 148) ? 84 : 80;
#else
int qzbin_factor = (vp8_dc_quant(Q,0) < 37) ? 84: 80;
#endif
for (Q = 0; Q < QINDEX_RANGE; Q++)
{
#if CONFIG_EXTEND_QRANGE
int qzbin_factor = (vp8_dc_quant(Q,0) < 148) ? 84 : 80;
#else
int qzbin_factor = (vp8_dc_quant(Q,0) < 37) ? 84: 80;
#endif
// dc values
quant_val = vp8_dc_quant(Q, cpi->common.y1dc_delta_q);
cpi->Y1quant_fast[Q][0] = (1 << 16) / quant_val;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment