]> granicus.if.org Git - libvpx/commitdiff
Refactor GOP reference frame ordering for tpl model
authorJingning Han <jingning@google.com>
Mon, 15 Oct 2018 22:27:02 +0000 (15:27 -0700)
committerJingning Han <jingning@google.com>
Mon, 15 Oct 2018 22:30:06 +0000 (15:30 -0700)
Process the frames in the order of GOP structure definition.
Decouple the dependency on rc->baseline_gf_interval.

Change-Id: I0d42c542aca552975cc8f08b0eb8b22ccf6a9537

vp9/encoder/vp9_encoder.c

index a2550d1d193162d814651f350136eb8816c3f849..dfc92e8e8e7433eca7898c77257ea23c6576807c 100644 (file)
@@ -5415,7 +5415,7 @@ void init_gop_frames(VP9_COMP *cpi, GF_PICTURE *gf_picture,
   ++*tpl_group_frames;
 
   // Initialize P frames
-  for (frame_idx = 2; frame_idx < MAX_LAG_BUFFERS; ++frame_idx) {
+  for (frame_idx = 2; frame_idx < MAX_ARF_GOP_SIZE; ++frame_idx) {
     const int frame_gop_offset = gf_group->frame_gop_index[frame_idx];
     struct lookahead_entry *buf =
         vp9_lookahead_peek(cpi->lookahead, frame_gop_offset - 1);
@@ -5433,7 +5433,7 @@ void init_gop_frames(VP9_COMP *cpi, GF_PICTURE *gf_picture,
     // The length of group of pictures is baseline_gf_interval, plus the
     // beginning golden frame from last GOP, plus the last overlay frame in
     // the same GOP.
-    if (frame_idx == cpi->rc.baseline_gf_interval + 1) break;
+    if (frame_idx == gf_group->gf_group_size) break;
   }
 
   gld_index = frame_idx;