ref: f80e888723942e821d7f89735ab71d96662f6aa2
parent: 1c1d5c5baf527c08f3a98711aed987bd8265e791
author: Marco Paniconi <[email protected]>
date: Fri May 15 10:02:00 EDT 2020
vp9-svc: Fix key frame update refresh simulcast flexible svc For flexible svc in simulcast mode: don't allow refresh of all reference slots on key frame. Which slots to update should be based on the user flags. Change-Id: I3597c61ebcdfed2055bbdffec7ce701fad892744
--- a/vp9/encoder/vp9_svc_layercontext.c
+++ b/vp9/encoder/vp9_svc_layercontext.c
@@ -1259,7 +1259,7 @@
BufferPool *const pool = cm->buffer_pool;
int i;
for (i = 0; i < REF_FRAMES; i++) {
- if (cm->frame_type == KEY_FRAME ||
+ if ((cm->frame_type == KEY_FRAME && !svc->simulcast_mode) ||
svc->update_buffer_slot[svc->spatial_layer_id] & (1 << i)) {
ref_cnt_fb(pool->frame_bufs, &cm->ref_frame_map[i], cm->new_fb_idx);
svc->fb_idx_spatial_layer_id[i] = svc->spatial_layer_id;