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) {