vp9-svc: Add support for spatial layer sync frames.
authorMarco Paniconi <marpan@google.com>
Tue, 12 Jun 2018 18:50:29 +0000 (11:50 -0700)
committerMarco Paniconi <marpan@google.com>
Wed, 20 Jun 2018 16:53:05 +0000 (09:53 -0700)
commit69a6506a8ff81dc3d222df21d19812e3125779dd
treee1b9033011f80bf5538560093d924d93607c4279
parent729d7d6a2ff0f9a9d2f5534767ddb7edd6f598a7
vp9-svc: Add support for spatial layer sync frames.

Add encoder control to allow application to insert
spatial layer sync frame. The sync frame disables
temporal prediction for that spatial layer.

This is useful for RTC application to have receiver
start decoding a higher spatial layer, without inserting
a key frame on base spatial layer.

If the layer sync is requested on the base spatial layer
this then force a key frame, otherwise it only disables
the temporal reference for that spatial layer, allowing
temporal prediction to continue for the other layers.

Although the temporal prediction is disabled and reset
on a layer sync frame, the inter-layer prediction for the
sync frame is enabled on INTER frames. So the meaning of
INTER_LAYER_PRED_OFF_NONKEY is modified to mean disable
inter-layer prediction on non-key and non-sync frames.

Added unittest for inserting layer sync frames.

Bump up ABI version.
Change-Id: Id458acc400a77c853551f125c4e7b6d001991f03
test/encode_test_driver.h
test/svc_datarate_test.cc
vp9/encoder/vp9_encoder.c
vp9/encoder/vp9_ratectrl.c
vp9/encoder/vp9_svc_layercontext.c
vp9/encoder/vp9_svc_layercontext.h
vp9/vp9_cx_iface.c
vpx/vp8cx.h
vpx/vpx_encoder.h