summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Paniconi <marpan@google.com>2020-05-15 14:02:00 -0700
committerMarco Paniconi <marpan@google.com>2020-05-15 14:11:37 -0700
commitf80e888723942e821d7f89735ab71d96662f6aa2 (patch)
tree4a30f57441c9c6180c9bf8b79dbcd30d07236ae6
parent1c1d5c5baf527c08f3a98711aed987bd8265e791 (diff)
downloadlibvpx-f80e888723942e821d7f89735ab71d96662f6aa2.tar.gz
libvpx-f80e888723942e821d7f89735ab71d96662f6aa2.tar.bz2
libvpx-f80e888723942e821d7f89735ab71d96662f6aa2.zip
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
-rw-r--r--vp9/encoder/vp9_svc_layercontext.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_svc_layercontext.c b/vp9/encoder/vp9_svc_layercontext.c
index cd77c08a8..6f23d0b4d 100644
--- a/vp9/encoder/vp9_svc_layercontext.c
+++ b/vp9/encoder/vp9_svc_layercontext.c
@@ -1259,7 +1259,7 @@ static void vp9_svc_update_ref_frame_bypass_mode(VP9_COMP *const cpi) {
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;