From ee37046f1b07a4df47a6943b4750b1ad6115db0e Mon Sep 17 00:00:00 2001 From: Marco Paniconi Date: Mon, 2 Apr 2018 12:46:19 -0700 Subject: [PATCH] vp9-svc: Fix to svc sample encoder for write_out. When writing out stream for spatial layer N, make sure to include all spatial layers up to N. Fixes an issue with the streams when frame dropping occurs. Change-Id: I1e20b7dac6b94dcda751043541dd8a12f7df6d8c --- examples/vp9_spatial_svc_encoder.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/examples/vp9_spatial_svc_encoder.c b/examples/vp9_spatial_svc_encoder.c index f49dd406e..33347c4b2 100644 --- a/examples/vp9_spatial_svc_encoder.c +++ b/examples/vp9_spatial_svc_encoder.c @@ -830,14 +830,17 @@ int main(int argc, const char **argv) { num_layers_encoded++; } } - tot_size = 0; for (sl = 0; sl < enc_cfg.ss_number_layers; ++sl) { - if (cx_pkt->data.frame.spatial_layer_encoded[sl]) { - tot_size += sizes[sl]; + unsigned int sl2; + tot_size = 0; + for (sl2 = 0; sl2 <= sl; ++sl2) { + if (cx_pkt->data.frame.spatial_layer_encoded[sl2]) + tot_size += sizes[sl2]; + } + if (tot_size > 0) vpx_video_writer_write_frame( outfile[sl], cx_pkt->data.frame.buf, tot_size, cx_pkt->data.frame.pts); - } } } for (sl = 0; sl < enc_cfg.ss_number_layers; ++sl) { -- 2.50.1