From edcbb1c199e086b45803829d00d09d5aa295b3e3 Mon Sep 17 00:00:00 2001 From: John Koleszar Date: Thu, 9 Sep 2010 12:57:23 -0400 Subject: [PATCH] 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 --- vp8/encoder/firstpass.c | 1 + vp8/encoder/onyx_if.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/vp8/encoder/firstpass.c b/vp8/encoder/firstpass.c index 2dea8b7..a65bce6 100644 --- a/vp8/encoder/firstpass.c +++ b/vp8/encoder/firstpass.c @@ -1403,6 +1403,7 @@ static void define_gf_group(VP8_COMP *cpi, FIRSTPASS_STATS *this_frame) // 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) && diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c index 5c78b9c..56bac0a 100644 --- a/vp8/encoder/onyx_if.c +++ b/vp8/encoder/onyx_if.c @@ -1344,8 +1344,8 @@ void vp8_new_frame_rate(VP8_COMP *cpi, double framerate) 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; -- 2.7.4