shithub: libvpx

Download patch

ref: ee37046f1b07a4df47a6943b4750b1ad6115db0e
parent: 99fa889f910f3667d4c9ac0bf95758ecca70c048
author: Marco Paniconi <marpan@google.com>
date: Mon Apr 2 08:46:19 EDT 2018

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

--- a/examples/vp9_spatial_svc_encoder.c
+++ b/examples/vp9_spatial_svc_encoder.c
@@ -830,14 +830,17 @@
                     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) {