diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c index f52e680a66068001242cfedf3dc2fe807152487c..fb5fb334c1efc8a378e909280404656b909100a9 100644 --- a/vp9/encoder/vp9_onyx_if.c +++ b/vp9/encoder/vp9_onyx_if.c @@ -1094,12 +1094,18 @@ static void init_config(VP9_PTR ptr, VP9_CONFIG *oxcf) { // Initialize active best and worst q and average q values. cpi->rc.active_worst_quality = cpi->oxcf.worst_allowed_q; - cpi->rc.avg_frame_qindex[0] = (cpi->oxcf.worst_allowed_q + - cpi->oxcf.best_allowed_q) / 2; - cpi->rc.avg_frame_qindex[1] = (cpi->oxcf.worst_allowed_q + - cpi->oxcf.best_allowed_q) / 2; - cpi->rc.avg_frame_qindex[2] = (cpi->oxcf.worst_allowed_q + - cpi->oxcf.best_allowed_q) / 2; + if (cpi->pass == 0 && cpi->oxcf.end_usage == USAGE_STREAM_FROM_SERVER) { + cpi->rc.avg_frame_qindex[0] = cpi->oxcf.worst_allowed_q; + cpi->rc.avg_frame_qindex[1] = cpi->oxcf.worst_allowed_q; + cpi->rc.avg_frame_qindex[2] = cpi->oxcf.worst_allowed_q; + } else { + cpi->rc.avg_frame_qindex[0] = (cpi->oxcf.worst_allowed_q + + cpi->oxcf.best_allowed_q) / 2; + cpi->rc.avg_frame_qindex[1] = (cpi->oxcf.worst_allowed_q + + cpi->oxcf.best_allowed_q) / 2; + cpi->rc.avg_frame_qindex[2] = (cpi->oxcf.worst_allowed_q + + cpi->oxcf.best_allowed_q) / 2; + } cpi->rc.last_q[0] = cpi->oxcf.best_allowed_q; cpi->rc.last_q[1] = cpi->oxcf.best_allowed_q; cpi->rc.last_q[2] = cpi->oxcf.best_allowed_q;