From: Marco Paniconi Date: Fri, 15 May 2020 21:02:00 +0000 (-0700) Subject: vp9-svc: Fix key frame update refresh simulcast flexible svc X-Git-Tag: v1.9.0-rc1~14 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f80e888723942e821d7f89735ab71d96662f6aa2;p=libvpx 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 --- 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;