shithub: libvpx

Download patch

ref: 15389ab11d1001749ea796e0c86b345555703d15
parent: 890c8a15d11be3141dff16c2c577622b59abbb66
author: Marco Paniconi <[email protected]>
date: Thu Dec 13 10:40:09 EST 2018

vp9-svc: On scene change: only reset TL in flexible mode.

On scene/slide change detected on TL > 0 frame, only
reset the temporal layer pattern for flexible/bypass mode.

Change-Id: Ib848778addc10ef6981b92839af397833fd4a908

--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -3853,7 +3853,9 @@
     // inserting base layer here, we force max-q for the next superframe
     // with lower spatial layers: this is done in vp9_encodedframe_overshoot()
     // when max-q is decided for the current layer.
-    if (svc->high_source_sad_superframe && svc->temporal_layer_id > 0) {
+    // Only do this reset for bypass/flexible mode.
+    if (svc->high_source_sad_superframe && svc->temporal_layer_id > 0 &&
+        svc->temporal_layering_mode == VP9E_TEMPORAL_LAYERING_MODE_BYPASS) {
       // rc->high_source_sad will get reset so copy it to restore it.
       int tmp_high_source_sad = cpi->rc.high_source_sad;
       vp9_svc_reset_temporal_layers(cpi, cm->frame_type == KEY_FRAME);