Remove extra reference from GOF.

This removes second reference for frame 3 in GOF predefined for 3
temporal layers since encoder never use that reference.

Bug: webrtc:9245
Change-Id: I6fbdbe7d3c753dda7fbcfcbd05f3530f70f80728
Reviewed-on: https://webrtc-review.googlesource.com/74705
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Marco Paniconi <marpan@google.com>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23193}
diff --git a/modules/video_coding/codecs/vp9/include/vp9_globals.h b/modules/video_coding/codecs/vp9/include/vp9_globals.h
index 918e411..3ee9952 100644
--- a/modules/video_coding/codecs/vp9/include/vp9_globals.h
+++ b/modules/video_coding/codecs/vp9/include/vp9_globals.h
@@ -79,10 +79,9 @@
         pid_diff[2][0] = 2;
 
         temporal_idx[3] = 2;
-        temporal_up_switch[3] = false;
-        num_ref_pics[3] = 2;
+        temporal_up_switch[3] = true;
+        num_ref_pics[3] = 1;
         pid_diff[3][0] = 1;
-        pid_diff[3][1] = 2;
         break;
       case kTemporalStructureMode4:
         num_frames_in_gof = 8;
diff --git a/modules/video_coding/jitter_buffer_unittest.cc b/modules/video_coding/jitter_buffer_unittest.cc
index f9dffc0..06faf21 100644
--- a/modules/video_coding/jitter_buffer_unittest.cc
+++ b/modules/video_coding/jitter_buffer_unittest.cc
@@ -189,10 +189,9 @@
   packet_.video_header.codecHeader.VP9.gof_idx = 3;
   EXPECT_TRUE(map_.UpdatePacket(&packet_));
   EXPECT_EQ(2, packet_.video_header.codecHeader.VP9.temporal_idx);
-  EXPECT_FALSE(packet_.video_header.codecHeader.VP9.temporal_up_switch);
-  EXPECT_EQ(2U, packet_.video_header.codecHeader.VP9.num_ref_pics);
+  EXPECT_TRUE(packet_.video_header.codecHeader.VP9.temporal_up_switch);
+  EXPECT_EQ(1U, packet_.video_header.codecHeader.VP9.num_ref_pics);
   EXPECT_EQ(1, packet_.video_header.codecHeader.VP9.pid_diff[0]);
-  EXPECT_EQ(2, packet_.video_header.codecHeader.VP9.pid_diff[1]);
 }
 
 class TestBasicJitterBuffer : public ::testing::TestWithParam<std::string>,
diff --git a/modules/video_coding/rtp_frame_reference_finder_unittest.cc b/modules/video_coding/rtp_frame_reference_finder_unittest.cc
index dd9b2de..a8f1539 100644
--- a/modules/video_coding/rtp_frame_reference_finder_unittest.cc
+++ b/modules/video_coding/rtp_frame_reference_finder_unittest.cc
@@ -880,7 +880,7 @@
   CheckReferencesVp9(0, 0);
   CheckReferencesVp9(1, 0, 0);
   CheckReferencesVp9(2, 0, 0);
-  CheckReferencesVp9(3, 0, 1, 2);
+  CheckReferencesVp9(3, 0, 2);
 
   // Skip frames with tl0 = 1
 
@@ -893,7 +893,7 @@
   CheckReferencesVp9(8, 0);
   CheckReferencesVp9(9, 0, 8);
   CheckReferencesVp9(10, 0, 8);
-  CheckReferencesVp9(11, 0, 9, 10);
+  CheckReferencesVp9(11, 0, 10);
 
   // Now insert frames with tl0 = 1
   InsertVp9Gof(sn + 4, sn + 4, true, pid + 4, 0, 0, 1, false, &ss);
@@ -1043,23 +1043,23 @@
   CheckReferencesVp9(0, 0);
   CheckReferencesVp9(1, 0, 0);
   CheckReferencesVp9(2, 0, 0);
-  CheckReferencesVp9(3, 0, 1, 2);
+  CheckReferencesVp9(3, 0, 2);
   CheckReferencesVp9(4, 0, 0);
   CheckReferencesVp9(5, 0, 4);
   CheckReferencesVp9(6, 0, 4);
-  CheckReferencesVp9(7, 0, 5, 6);
+  CheckReferencesVp9(7, 0, 6);
   CheckReferencesVp9(8, 0, 4);
   CheckReferencesVp9(9, 0, 8);
   CheckReferencesVp9(10, 0, 8);
-  CheckReferencesVp9(11, 0, 9, 10);
+  CheckReferencesVp9(11, 0, 10);
   CheckReferencesVp9(12, 0, 8);
   CheckReferencesVp9(13, 0, 12);
   CheckReferencesVp9(14, 0, 12);
-  CheckReferencesVp9(15, 0, 13, 14);
+  CheckReferencesVp9(15, 0, 14);
   CheckReferencesVp9(16, 0, 12);
   CheckReferencesVp9(17, 0, 16);
   CheckReferencesVp9(18, 0, 16);
-  CheckReferencesVp9(19, 0, 17, 18);
+  CheckReferencesVp9(19, 0, 18);
 }
 
 TEST_F(TestRtpFrameReferenceFinder, Vp9GofTemporalLayersReordered_0212) {
@@ -1093,23 +1093,23 @@
   CheckReferencesVp9(0, 0);
   CheckReferencesVp9(1, 0, 0);
   CheckReferencesVp9(2, 0, 0);
-  CheckReferencesVp9(3, 0, 1, 2);
+  CheckReferencesVp9(3, 0, 2);
   CheckReferencesVp9(4, 0, 0);
   CheckReferencesVp9(5, 0, 4);
   CheckReferencesVp9(6, 0, 4);
-  CheckReferencesVp9(7, 0, 5, 6);
+  CheckReferencesVp9(7, 0, 6);
   CheckReferencesVp9(8, 0, 4);
   CheckReferencesVp9(9, 0, 8);
   CheckReferencesVp9(10, 0, 8);
-  CheckReferencesVp9(11, 0, 9, 10);
+  CheckReferencesVp9(11, 0, 10);
   CheckReferencesVp9(12, 0, 8);
   CheckReferencesVp9(13, 0, 12);
   CheckReferencesVp9(14, 0, 12);
-  CheckReferencesVp9(15, 0, 13, 14);
+  CheckReferencesVp9(15, 0, 14);
   CheckReferencesVp9(16, 0, 12);
   CheckReferencesVp9(17, 0, 16);
   CheckReferencesVp9(18, 0, 16);
-  CheckReferencesVp9(19, 0, 17, 18);
+  CheckReferencesVp9(19, 0, 18);
 }
 
 TEST_F(TestRtpFrameReferenceFinder, Vp9GofTemporalLayersUpSwitch_02120212) {
@@ -1225,11 +1225,11 @@
   CheckReferencesVp9(4, 0, 0);
   CheckReferencesVp9(5, 0, 4);
   CheckReferencesVp9(6, 0, 4);
-  CheckReferencesVp9(7, 0, 5, 6);
+  CheckReferencesVp9(7, 0, 6);
   CheckReferencesVp9(8, 0, 4);
   CheckReferencesVp9(9, 0, 8);
   CheckReferencesVp9(10, 0, 8);
-  CheckReferencesVp9(11, 0, 9, 10);
+  CheckReferencesVp9(11, 0, 10);
 }
 
 TEST_F(TestRtpFrameReferenceFinder, Vp9FlexibleModeOneFrame) {