From: Minghai Shang Date: Thu, 27 Mar 2014 20:35:27 +0000 (-0700) Subject: [svc] Fix issue for setting layers through ffmpeg X-Git-Tag: v1.4.0~1945^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d4124ea3174c1b901cce77f0904a0c9d8a1ad2f2;p=libvpx [svc] Fix issue for setting layers through ffmpeg Root cause is number of spatial layers is set through parse_options() when running from ffmpeg. Change-Id: Icd79cd13fd76e8712150d803838a33fee9117dcb --- diff --git a/vpx/src/svc_encodeframe.c b/vpx/src/svc_encodeframe.c index d4f4e9f38..76aacd2f4 100644 --- a/vpx/src/svc_encodeframe.c +++ b/vpx/src/svc_encodeframe.c @@ -524,9 +524,6 @@ vpx_codec_err_t vpx_svc_init(SvcContext *svc_ctx, vpx_codec_ctx_t *codec_ctx, svc_ctx->spatial_layers); return VPX_CODEC_INVALID_PARAM; } - // use SvcInternal value for number of layers to enable forcing single layer - // for first frame - si->layers = svc_ctx->spatial_layers; res = parse_quantizer_values(svc_ctx, si->quantizers, 0); if (res != VPX_CODEC_OK) return res; @@ -538,10 +535,13 @@ vpx_codec_err_t vpx_svc_init(SvcContext *svc_ctx, vpx_codec_ctx_t *codec_ctx, res = parse_scale_factors(svc_ctx, si->scale_factors); if (res != VPX_CODEC_OK) return res; - // parse aggregate command line options + // Parse aggregate command line options. Options must start with + // "layers=xx" then followed by other options res = parse_options(svc_ctx, si->options); if (res != VPX_CODEC_OK) return res; + si->layers = svc_ctx->spatial_layers; + // Assign target bitrate for each layer. We calculate the ratio // from the resolution for now. // TODO(Minghai): Optimize the mechanism of allocating bits after