Clean code a bit and fix a couple of small bugs in ext-refs

Currently the patch does not have any impact on the RD performance. The
fix could however potentially help on the next step of work, especially
when the extra altref frames allow non-zero temporal filtering strength
and their corresponding OVERLAY frames, i.e. the INTNL_OVERLAY frames
are being added.

Change-Id: I2e07fb3d0aa547a0b5dd05bb4ba865cd46309076
This commit is contained in:
Zoe Liu
2016-10-12 12:31:43 -07:00
parent 3265ef3d1d
commit f0e4669edb
2 changed files with 28 additions and 42 deletions

View File

@@ -2585,10 +2585,11 @@ static void configure_buffer_updates(AV1_COMP *cpi) {
if (cpi->num_extra_arfs) {
int tmp = cpi->bwd_fb_idx;
cpi->rc.is_bwd_ref_frame = 1;
cpi->bwd_fb_idx = cpi->alt_fb_idx;
cpi->alt_fb_idx = cpi->arf_map[0];
cpi->arf_map[0] = tmp;
cpi->rc.is_bwd_ref_frame = 1;
} else {
cpi->rc.is_bwd_ref_frame = 0;
}
@@ -2639,11 +2640,13 @@ static void configure_buffer_updates(AV1_COMP *cpi) {
// NOTE: The indices will be swapped back after this frame is encoded
// (in av1_update_reference_frames()).
int tmp = cpi->bwd_fb_idx;
cpi->bwd_fb_idx = cpi->alt_fb_idx;
cpi->alt_fb_idx = cpi->arf_map[0];
cpi->arf_map[0] = tmp;
}
break;
case LAST_BIPRED_UPDATE:
cpi->refresh_last_frame = 0;
cpi->refresh_golden_frame = 0;