summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encoder.c
diff options
context:
space:
mode:
authorJerome Jiang <jianj@google.com>2018-08-06 11:37:43 -0700
committerJerome Jiang <jianj@google.com>2018-08-09 13:56:46 -0700
commita66da313805f41076fd05358a65c1084f646f348 (patch)
tree8332b6ceae06c3bb5cbddbcb1bba1ae5891c80c5 /vp9/encoder/vp9_encoder.c
parentaab2aff9aa264d573852f4dce34bea47708cf1be (diff)
downloadlibvpx-a66da313805f41076fd05358a65c1084f646f348.tar
libvpx-a66da313805f41076fd05358a65c1084f646f348.tar.gz
libvpx-a66da313805f41076fd05358a65c1084f646f348.tar.bz2
libvpx-a66da313805f41076fd05358a65c1084f646f348.zip
vp9-svc: Update to SET/GET_SVC_REF_FRAME_CONFIG api
Add update_buffer_slot to SVC API to allow for refreshing any of the 8 reference buffers. Remove frame_flags from the struct. Remove svc tests from vp8 build. BUG=b/112292577 Change-Id: I0551c349d2b311227245a8ed1639cdbbaf5bc5db
Diffstat (limited to 'vp9/encoder/vp9_encoder.c')
-rw-r--r--vp9/encoder/vp9_encoder.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index 3db11fcb0..dddae32c8 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -3277,8 +3277,10 @@ void vp9_update_reference_frames(VP9_COMP *cpi) {
#endif
if (is_one_pass_cbr_svc(cpi)) {
- // Keep track of frame index for each reference frame.
- if (cm->frame_type == KEY_FRAME) {
+ if (svc->temporal_layering_mode == VP9E_TEMPORAL_LAYERING_MODE_BYPASS) {
+ vp9_svc_update_ref_frame_bypass_mode(cpi);
+ } else if (cm->frame_type == KEY_FRAME) {
+ // Keep track of frame index for each reference frame.
int i;
// On key frame update all reference frame slots.
for (i = 0; i < REF_FRAMES; i++) {
@@ -3312,10 +3314,12 @@ void vp9_update_reference_frames(VP9_COMP *cpi) {
static void loopfilter_frame(VP9_COMP *cpi, VP9_COMMON *cm) {
MACROBLOCKD *xd = &cpi->td.mb.e_mbd;
struct loopfilter *lf = &cm->lf;
-
- const int is_reference_frame =
+ int is_reference_frame =
(cm->frame_type == KEY_FRAME || cpi->refresh_last_frame ||
cpi->refresh_golden_frame || cpi->refresh_alt_ref_frame);
+ if (cpi->use_svc &&
+ cpi->svc.temporal_layering_mode == VP9E_TEMPORAL_LAYERING_MODE_BYPASS)
+ is_reference_frame = !cpi->svc.non_reference_frame;
if (xd->lossless) {
lf->filter_level = 0;