ref: edcbb1c199e086b45803829d00d09d5aa295b3e3
parent: 6d90f867e454b9fcb0fa4e540796a08a8e37f943
author: John Koleszar <jkoleszar@google.com>
date: Thu Sep 9 08:57:23 EDT 2010
Fix GF interval for non-lagged ARFs When ARFs are enabled in non-lagged compress modes, the GF interval was being reset to zero. Non-lagged ARF updates were enabled in commit 63ccfbd, but this incorrect GF interval caused a quality regression. Change-Id: I615c3b493f4ce2127044f4e68d0bcb07d6b730c3
--- a/vp8/encoder/firstpass.c
+++ b/vp8/encoder/firstpass.c
@@ -1403,6 +1403,7 @@
// Should we use the alternate refernce frame
if (cpi->oxcf.play_alternate &&
+ cpi->oxcf.lag_in_frames &&
(i >= MIN_GF_INTERVAL) &&
(i <= (cpi->frames_to_key - MIN_GF_INTERVAL)) && // dont use ARF very near next kf
(((next_frame.pcnt_inter > 0.75) &&
--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -1344,8 +1344,8 @@
cpi->max_gf_interval = 12;
- // Special conditions when altr ref frame enabled
- if (cpi->oxcf.play_alternate)
+ // Special conditions when altr ref frame enabled in lagged compress mode
+ if (cpi->oxcf.play_alternate && cpi->oxcf.lag_in_frames)
{
if (cpi->max_gf_interval > cpi->oxcf.lag_in_frames - 1)
cpi->max_gf_interval = cpi->oxcf.lag_in_frames - 1;