diff --git a/test/datarate_test.cc b/test/datarate_test.cc index 7d8a0ab73..cec6d090d 100644 --- a/test/datarate_test.cc +++ b/test/datarate_test.cc @@ -770,7 +770,7 @@ class DatarateOnePassCbrSvc : public ::libvpx_test::EncoderTest, ::libvpx_test::Encoder *encoder) { if (video->frame() == 0) { int i; - for (i = 0; i < 2; ++i) { + for (i = 0; i < VPX_MAX_LAYERS; ++i) { svc_params_.max_quantizers[i] = 63; svc_params_.min_quantizers[i] = 0; } diff --git a/vp9/vp9_cx_iface.c b/vp9/vp9_cx_iface.c index 6ccba0f8c..db7f537a6 100644 --- a/vp9/vp9_cx_iface.c +++ b/vp9/vp9_cx_iface.c @@ -1393,8 +1393,8 @@ static vpx_codec_err_t ctrl_set_svc_parameters(vpx_codec_alg_priv_t *ctx, LAYER_IDS_TO_IDX(sl, tl, cpi->svc.number_temporal_layers); LAYER_CONTEXT *lc = &cpi->svc.layer_context[layer]; - lc->max_q = params->max_quantizers[sl]; - lc->min_q = params->min_quantizers[sl]; + lc->max_q = params->max_quantizers[layer]; + lc->min_q = params->min_quantizers[layer]; lc->scaling_factor_num = params->scaling_factor_num[sl]; lc->scaling_factor_den = params->scaling_factor_den[sl]; } diff --git a/vpx/src/svc_encodeframe.c b/vpx/src/svc_encodeframe.c index ff7c10afc..68d1d8d3a 100644 --- a/vpx/src/svc_encodeframe.c +++ b/vpx/src/svc_encodeframe.c @@ -385,7 +385,7 @@ vpx_codec_err_t vpx_svc_init(SvcContext *svc_ctx, vpx_codec_ctx_t *codec_ctx, vpx_codec_iface_t *iface, vpx_codec_enc_cfg_t *enc_cfg) { vpx_codec_err_t res; - int i; + int i, sl , tl; SvcInternal_t *const si = get_svc_internal(svc_ctx); if (svc_ctx == NULL || codec_ctx == NULL || iface == NULL || enc_cfg == NULL) { @@ -423,11 +423,14 @@ vpx_codec_err_t vpx_svc_init(SvcContext *svc_ctx, vpx_codec_ctx_t *codec_ctx, svc_ctx->temporal_layers = 2; } - for (i = 0; i < VPX_SS_MAX_LAYERS; ++i) { - si->svc_params.max_quantizers[i] = MAX_QUANTIZER; - si->svc_params.min_quantizers[i] = 0; - si->svc_params.scaling_factor_num[i] = DEFAULT_SCALE_FACTORS_NUM[i]; - si->svc_params.scaling_factor_den[i] = DEFAULT_SCALE_FACTORS_DEN[i]; + for (tl = 0; tl < svc_ctx->temporal_layers; ++tl) { + for (sl = 0; sl < svc_ctx->spatial_layers; ++sl) { + i = sl * svc_ctx->temporal_layers + tl; + si->svc_params.max_quantizers[i] = MAX_QUANTIZER; + si->svc_params.min_quantizers[i] = 0; + si->svc_params.scaling_factor_num[sl] = DEFAULT_SCALE_FACTORS_NUM[sl]; + si->svc_params.scaling_factor_den[sl] = DEFAULT_SCALE_FACTORS_DEN[sl]; + } } // Parse aggregate command line options. Options must start with