ref: 1c27e1f127e9f6c775b71922eb85de1e11fc81d4
parent: 9f76c1ec507e1c866c8952c6003e99af9bc9d73c
author: Paul Wilkins <[email protected]>
date: Thu Jun 26 05:48:31 EDT 2014
Fix quality regression for multi arf off case. Bug introduced during multiple iterations on: I3831* gf_group->arf_update_idx[] cannot currently be used to select the arf buffer index if buffer flipping on overlays is enabled (still currently the case when multi arf OFF). Change-Id: I4ce9ea08f1dd03ac3ad8b3e27375a91ee1d964dc
--- a/vp9/encoder/vp9_bitstream.c
+++ b/vp9/encoder/vp9_bitstream.c
@@ -904,7 +904,7 @@
(cpi->refresh_golden_frame << cpi->alt_fb_idx);
} else {
int arf_idx = cpi->alt_fb_idx;
- if (cpi->pass == 2) {
+ if ((cpi->pass == 2) && cpi->multi_arf_allowed) {
const GF_GROUP *const gf_group = &cpi->twopass.gf_group;
arf_idx = gf_group->arf_update_idx[gf_group->index];
}
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -1514,7 +1514,7 @@
} else { /* For non key/golden frames */
if (cpi->refresh_alt_ref_frame) {
int arf_idx = cpi->alt_fb_idx;
- if (cpi->pass == 2) {
+ if ((cpi->pass == 2) && cpi->multi_arf_allowed) {
const GF_GROUP *const gf_group = &cpi->twopass.gf_group;
arf_idx = gf_group->arf_update_idx[gf_group->index];
}
@@ -2481,7 +2481,7 @@
cm->show_frame = 1;
cm->intra_only = 0;
- // Check to see if the frame should be encoded is an arf overlay.
+ // Check to see if the frame should be encoded as an arf overlay.
check_src_altref(cpi);
}
}