]> granicus.if.org Git - libvpx/commitdiff
Fork auto-alt-ref control
authorJingning Han <jingning@google.com>
Fri, 7 Sep 2018 17:25:07 +0000 (10:25 -0700)
committerJingning Han <jingning@google.com>
Fri, 7 Sep 2018 17:31:25 +0000 (10:31 -0700)
Temporarily fork the auto-alt-ref control meaning. When it is set
to be 1, use single layer ARF as baseline. The value 2 would enable
dual ARF system. Any number above it would trigger automatic multi-
layer ARFs.

We would gradually refactor and integrate dual ARF and multi-layer
ARF systems next, and eventually make auto-alt-ref directly control
the layer depth.

Change-Id: I292d27111ae8a596b97444afecf4b896043e543f

vp9/encoder/vp9_encoder.c

index 714c8a2411e8cfa2a7ca57cc1b4140ea7f61ae3c..6cece62b48d02667110b71b634a2b249a9794a5b 100644 (file)
@@ -6098,11 +6098,20 @@ 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.
-  if ((oxcf->pass == 2) && !cpi->use_svc && (cpi->oxcf.enable_auto_arf > 1))
+  // 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)
+    cpi->multi_layer_arf = 1;
+  else
+    cpi->multi_layer_arf = 0;
+
   // Normal defaults
   cm->reset_frame_context = 0;
   cm->refresh_frame_context = 1;