summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encoder.c
diff options
context:
space:
mode:
authorJerome Jiang <jianj@google.com>2019-03-04 15:51:22 -0800
committerJerome Jiang <jianj@google.com>2019-03-07 15:20:13 -0800
commit3529526e114d34ba6be0fab94a9d36abb512bee4 (patch)
treed3458e7c82be516b288d21652d2ec13b833848cd /vp9/encoder/vp9_encoder.c
parentd64e328624e09cbc36e7077598bf0ff367dcdb4c (diff)
downloadlibvpx-3529526e114d34ba6be0fab94a9d36abb512bee4.tar
libvpx-3529526e114d34ba6be0fab94a9d36abb512bee4.tar.gz
libvpx-3529526e114d34ba6be0fab94a9d36abb512bee4.tar.bz2
libvpx-3529526e114d34ba6be0fab94a9d36abb512bee4.zip
vp9 svc: add simulcast mode when inter-layer pred is off.
Force all upper spatial layers to be key frame if the base layer is key. Mode only works for inter-layer pred=off and non-flexible mode. Add flag to write out bitstream for each spatial layer in example encoder. Change-Id: I5db4543cf8697544ae49464f2157e692640d5256
Diffstat (limited to 'vp9/encoder/vp9_encoder.c')
-rw-r--r--vp9/encoder/vp9_encoder.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index ec52d745a..72e72176f 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -3093,7 +3093,11 @@ static void update_ref_frames(VP9_COMP *cpi) {
}
void vp9_update_reference_frames(VP9_COMP *cpi) {
- update_ref_frames(cpi);
+ if (cpi->svc.simulcast_mode && is_one_pass_cbr_svc(cpi) &&
+ cpi->common.frame_type == KEY_FRAME)
+ vp9_svc_update_ref_frame_key_simulcast(cpi);
+ else
+ update_ref_frames(cpi);
#if CONFIG_VP9_TEMPORAL_DENOISING
vp9_denoiser_update_ref_frame(cpi);