diff options
author | Jerome Jiang <jianj@google.com> | 2018-08-06 11:37:43 -0700 |
---|---|---|
committer | Jerome Jiang <jianj@google.com> | 2018-08-09 13:56:46 -0700 |
commit | a66da313805f41076fd05358a65c1084f646f348 (patch) | |
tree | 8332b6ceae06c3bb5cbddbcb1bba1ae5891c80c5 /vp9/encoder/vp9_encoder.c | |
parent | aab2aff9aa264d573852f4dce34bea47708cf1be (diff) | |
download | libvpx-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.c | 12 |
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; |