From 48110d0f7904bb04b4f70000721e96ed64bc6fb2 Mon Sep 17 00:00:00 2001 From: paulwilkins Date: Wed, 16 Aug 2017 14:07:24 +0100 Subject: [PATCH] Fix corrupt arf groups due to low "lag_in_frames" Having a very small value for "lag_in_frames" can result in corrupt arf groups including displayed frames that update the arf buffer and fake overlay frames that are not in fact overlays of real arfs but are nevertheless starved of bits. Leaving lag_in_frames at the default of 25 for these 5 frame two pass VBR tests should now give rise to a valid ARF coding pattern as follows:- K(ey), A(rf), N(ormal), N, N, O(verlay). This change is part of a response to BUG=webm:1454 where broken arf groups interacted badly with a change that corrects for large rate misses. However, it may still in some cases increase encode time by virtue of the fact that the unit test now codes a correct coding pattern with "hidden" ARF frames. Change-Id: Ifd0246a4c1d0be247247c754024d7a4ed5f66a6b --- test/vp9_ethread_test.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/vp9_ethread_test.cc b/test/vp9_ethread_test.cc index d4ee8aedd..f52391256 100644 --- a/test/vp9_ethread_test.cc +++ b/test/vp9_ethread_test.cc @@ -50,7 +50,6 @@ class VPxFirstPassEncoderThreadTest InitializeConfig(); SetMode(encoding_mode_); - cfg_.g_lag_in_frames = 3; cfg_.rc_end_usage = VPX_VBR; cfg_.rc_2pass_vbr_minsection_pct = 5; cfg_.rc_2pass_vbr_maxsection_pct = 2000; @@ -238,7 +237,6 @@ class VPxEncoderThreadTest SetMode(encoding_mode_); if (encoding_mode_ != ::libvpx_test::kRealTime) { - cfg_.g_lag_in_frames = 3; cfg_.rc_end_usage = VPX_VBR; cfg_.rc_2pass_vbr_minsection_pct = 5; cfg_.rc_2pass_vbr_maxsection_pct = 2000; -- 2.40.0