ref: 15389ab11d1001749ea796e0c86b345555703d15
parent: 890c8a15d11be3141dff16c2c577622b59abbb66
author: Marco Paniconi <marpan@google.com>
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);