From: Marco Paniconi Date: Mon, 2 Apr 2018 19:46:19 +0000 (-0700) Subject: vp9-svc: Fix to svc sample encoder for write_out. X-Git-Tag: v1.8.0~758 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ee37046f1b07a4df47a6943b4750b1ad6115db0e;p=libvpx 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 --- 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) {