[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 d4f4e9f..76aacd2 100644
--- a/vpx/src/svc_encodeframe.c
+++ b/vpx/src/svc_encodeframe.c
@@ -524,9 +524,6 @@
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 @@
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