Fix the loop for gop frame setup in tpl experiment

The number of frames to be parsed should be gf_group->size
including the invisible frames, instead of gf_interval.
Also minor code refactoring is made for init_gop_frames()

Change-Id: Ib2b819c53921fcd01616243db40af4c988aaef12
diff --git a/av1/encoder/tpl_model.c b/av1/encoder/tpl_model.c
index b4705af..2381a3c 100644
--- a/av1/encoder/tpl_model.c
+++ b/av1/encoder/tpl_model.c
@@ -459,15 +459,15 @@
   }
 }
 
-static void init_gop_frames(AV1_COMP *cpi, GF_PICTURE *gf_picture,
-                            const GF_GROUP *gf_group, int *tpl_group_frames,
-                            const EncodeFrameInput *const frame_input) {
+static void init_gop_frames_for_tpl(AV1_COMP *cpi, GF_PICTURE *gf_picture,
+                                    const GF_GROUP *gf_group,
+                                    int *tpl_group_frames,
+                                    const EncodeFrameInput *const frame_input) {
   AV1_COMMON *cm = &cpi->common;
   const SequenceHeader *const seq_params = &cm->seq_params;
   int frame_idx = 0;
   int i;
   int gld_index = -1;
-  int alt_index = -1;
   int lst_index = -1;
   int extend_frame_count = 0;
   int frame_gop_offset = 0;
@@ -501,21 +501,17 @@
   *tpl_group_frames = 0;
 
   // Initialize Golden reference frame.
-  gf_picture[0].frame = NULL;
   RefCntBuffer *ref_buf = get_ref_frame_buf(cm, GOLDEN_FRAME);
-  if (ref_buf) gf_picture[0].frame = &ref_buf->buf;
+  gf_picture[0].frame = &ref_buf->buf;
   for (i = 0; i < 7; ++i) gf_picture[0].ref_frame[i] = -1;
   gld_index = 0;
   ++*tpl_group_frames;
 
-  // Initialize ARF frame
+  // Initialize base layer ARF frame
   gf_picture[1].frame = frame_input->source;
   gf_picture[1].ref_frame[0] = gld_index;
-  gf_picture[1].ref_frame[1] = lst_index;
-  gf_picture[1].ref_frame[2] = alt_index;
   // TODO(yuec) Need o  figure out full AV1 reference model
-  for (i = 3; i < 7; ++i) gf_picture[1].ref_frame[i] = -1;
-  alt_index = 1;
+  for (i = 1; i < 7; ++i) gf_picture[1].ref_frame[i] = -1;
   ++*tpl_group_frames;
 
   // Initialize P frames
@@ -529,18 +525,17 @@
     gf_picture[frame_idx].frame = &buf->img;
     gf_picture[frame_idx].ref_frame[0] = gld_index;
     gf_picture[frame_idx].ref_frame[1] = lst_index;
-    gf_picture[frame_idx].ref_frame[2] = alt_index;
+    gf_picture[frame_idx].ref_frame[2] = 1;
     for (i = 3; i < 7; ++i) gf_picture[frame_idx].ref_frame[i] = -1;
 
     ++*tpl_group_frames;
     lst_index = frame_idx;
 
-    if (frame_idx == cpi->rc.baseline_gf_interval + 1) break;
+    if (frame_idx == gf_group->size) break;
   }
 
   gld_index = frame_idx;
   lst_index = AOMMAX(0, frame_idx - 1);
-  alt_index = -1;
   ++frame_idx;
   ++frame_gop_offset;
 
@@ -556,8 +551,7 @@
     gf_picture[frame_idx].frame = &buf->img;
     gf_picture[frame_idx].ref_frame[0] = gld_index;
     gf_picture[frame_idx].ref_frame[1] = lst_index;
-    gf_picture[frame_idx].ref_frame[2] = alt_index;
-    for (i = 3; i < 7; ++i) gf_picture[frame_idx].ref_frame[i] = -1;
+    for (i = 2; i < 7; ++i) gf_picture[frame_idx].ref_frame[i] = -1;
     lst_index = frame_idx;
     ++*tpl_group_frames;
     ++extend_frame_count;
@@ -583,7 +577,8 @@
   int tpl_group_frames = 0;
   int frame_idx;
 
-  init_gop_frames(cpi, gf_picture, gf_group, &tpl_group_frames, frame_input);
+  init_gop_frames_for_tpl(cpi, gf_picture, gf_group, &tpl_group_frames,
+                          frame_input);
 
   init_tpl_stats(cpi);