Fix bug when overlaying middle arfs in multi-arf groups.
authorpaulwilkins <paulwilkins@google.com>
Mon, 7 Dec 2015 15:23:46 +0000 (15:23 +0000)
committerpaulwilkins <paulwilkins@google.com>
Mon, 7 Dec 2015 15:23:46 +0000 (15:23 +0000)
Fix copied over from VP9 master to VP10 master.
Do not reset the alt ref active flag when overlaying the middle
arf(s) of a multi arf group.

Change-Id: I1b7392107e7c675640d5ee1624012f39cc374c58

vp10/encoder/ratectrl.c

index d4c25c0..3ff2476 100644 (file)
@@ -1210,8 +1210,12 @@ static void update_golden_frame_stats(VP10_COMP *cpi) {
     rc->frames_since_golden = 0;
 
     // If we are not using alt ref in the up and coming group clear the arf
-    // active flag.
-    if (!rc->source_alt_ref_pending) {
+    // active flag. In multi arf group case, if the index is not 0 then
+    // we are overlaying a mid group arf so should not reset the flag.
+    if (cpi->oxcf.pass == 2) {
+      if (!rc->source_alt_ref_pending && (cpi->twopass.gf_group.index == 0))
+        rc->source_alt_ref_active = 0;
+    } else if (!rc->source_alt_ref_pending) {
       rc->source_alt_ref_active = 0;
     }