Set forward key frame detection in rate control

BUG=aomedia:3079

Change-Id: I2c7537ac1978660cf65ade34be95de35fde6559e
diff --git a/av1/encoder/ratectrl.c b/av1/encoder/ratectrl.c
index 2561ae0..cfb027f 100644
--- a/av1/encoder/ratectrl.c
+++ b/av1/encoder/ratectrl.c
@@ -1832,10 +1832,11 @@
   int active_best_quality = 0;
   int active_worst_quality = rc->active_worst_quality;
   int q;
+  GF_GROUP *gf_group = &cpi->ppi->gf_group;
 
   if (frame_is_intra_only(cm)) {
-    const int is_fwd_kf = cm->current_frame.frame_type == KEY_FRAME &&
-                          cm->show_frame == 0 && cpi->no_show_fwd_kf;
+    const int is_fwd_kf = gf_group->update_type[gf_index] == ARF_UPDATE &&
+                          gf_group->refbuf_state[gf_index] == REFBUF_UPDATE;
     get_intra_q_and_bounds(cpi, width, height, &active_best_quality,
                            &active_worst_quality, cq_level, is_fwd_kf);
   } else {
@@ -1915,8 +1916,8 @@
       gf_group->update_type[gf_index] == INTNL_ARF_UPDATE;
 
   if (frame_is_intra_only(cm)) {
-    const int is_fwd_kf = cm->current_frame.frame_type == KEY_FRAME &&
-                          cm->show_frame == 0 && cpi->no_show_fwd_kf;
+    const int is_fwd_kf = gf_group->update_type[gf_index] == ARF_UPDATE &&
+                          gf_group->refbuf_state[gf_index] == REFBUF_UPDATE;
     get_intra_q_and_bounds(cpi, width, height, &active_best_quality,
                            &active_worst_quality, cq_level, is_fwd_kf);
 #ifdef STRICT_RC