From: Paul Wilkins Date: Thu, 13 Sep 2018 13:21:46 +0000 (+0100) Subject: Initial step in deprecating previous dual arf code. X-Git-Tag: v1.8.0~332^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f0841f0a4060e5d8e0656b0050a1d5f9a478021e;p=libvpx Initial step in deprecating previous dual arf code. Always use cpi->multi_layer_arf branch if enable_auto_arf >= 2. Use enable_auto_arf value to indicate max number of ARF levels to use in multi-arf case. Further cleanup to of old code follow in seperate patches. Change-Id: I25cd1e4a119a2d482a15705f5126389054764f9f --- diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index f300f7111..1e7c17f29 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -5983,16 +5983,10 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags, // Is multi-arf enabled. // Note that at the moment multi_arf is only configured for 2 pass VBR and // will not work properly with svc. - // TODO(jingning): enable dual ARF encoding when auto-alt-ref is set to be 2. - // We will refactor and integrate the dual ARF and multi-layer ARF system - // next and deprecate this special control setting, instead make auto-alt-ref - // directly controls the ARF layer depth. - if ((oxcf->pass == 2) && !cpi->use_svc && (cpi->oxcf.enable_auto_arf == 2)) - cpi->multi_arf_allowed = 1; - else - cpi->multi_arf_allowed = 0; - - if (oxcf->pass == 2 && !cpi->use_svc && cpi->oxcf.enable_auto_arf > 2) + // Enable the Jingning's new "multi_layer_arf" code if "enable_auto_arf" + // is greater than or equal to 2. + cpi->multi_arf_allowed = 0; + if ((oxcf->pass == 2) && !cpi->use_svc && (cpi->oxcf.enable_auto_arf >= 2)) cpi->multi_layer_arf = 1; else cpi->multi_layer_arf = 0; diff --git a/vp9/encoder/vp9_firstpass.c b/vp9/encoder/vp9_firstpass.c index b95e12427..8e27ccd51 100644 --- a/vp9/encoder/vp9_firstpass.c +++ b/vp9/encoder/vp9_firstpass.c @@ -2130,7 +2130,8 @@ static void find_arf_order(VP9_COMP *cpi, GF_GROUP *gf_group, int idx; // Process regular P frames - if (end - start < min_frame_interval) { + if ((end - start < min_frame_interval) || + (depth > cpi->oxcf.enable_auto_arf)) { int idx; for (idx = start; idx < end; ++idx) { gf_group->update_type[*index_counter] = LF_UPDATE;