]> granicus.if.org Git - libvpx/commitdiff
Initial step in deprecating previous dual arf code.
authorPaul Wilkins <paulwilkins@google.com>
Thu, 13 Sep 2018 13:21:46 +0000 (14:21 +0100)
committerPaul Wilkins <paulwilkins@google.com>
Thu, 13 Sep 2018 13:21:46 +0000 (14:21 +0100)
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

vp9/encoder/vp9_encoder.c
vp9/encoder/vp9_firstpass.c

index f300f7111e38a54e85950d802f4e29b70f4c293c..1e7c17f29282bbbd8fb5ddac1d9c156d9e764f9e 100644 (file)
@@ -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;
index b95e124278c7b92fefb612ce1536470b70e2cc6c..8e27ccd518b4247e86ef349d113f111f0007ba88 100644 (file)
@@ -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;