GF length reduction: respect min_gf_interval.

Don't reduce length when min_gf_interval frames are left.

STATS_CHANGED for rare cases where GF length was mistakenly reduced even
though it was exactly same as min_gf_interval already.

Change-Id: I971198f2c984f6bb9e8264932edd6dd69d89f377
diff --git a/av1/encoder/pass2_strategy.c b/av1/encoder/pass2_strategy.c
index bdcd20a..ac22b68 100644
--- a/av1/encoder/pass2_strategy.c
+++ b/av1/encoder/pass2_strategy.c
@@ -945,11 +945,12 @@
         next_gf_len + 1 >= rc->min_gf_interval;
 
     if (single_overlay_left || unbalanced_gf) {
-      // Note: Tried roll_back = DIVIDE_AND_ROUND(i, 8), but is does not work
-      // better in the current setting
       const int roll_back = REDUCE_GF_LENGTH_BY;
-      alt_offset = -roll_back;
-      i -= roll_back;
+      // Reduce length only if active_min_gf_interval will be respected later.
+      if (i - roll_back >= active_min_gf_interval + 1) {
+        alt_offset = -roll_back;
+        i -= roll_back;
+      }
     }
   }