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}
This commit is contained in:

committed by
Commit Bot

parent
a29b148557
commit
377ef24a8f
@ -79,10 +79,9 @@ struct GofInfoVP9 {
|
||||
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;
|
||||
|
@ -189,10 +189,9 @@ TEST_F(Vp9SsMapTest, UpdatePacket) {
|
||||
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>,
|
||||
|
@ -880,7 +880,7 @@ TEST_F(TestRtpFrameReferenceFinder, Vp9GofSkipFramesTemporalLayers_0212) {
|
||||
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 @@ TEST_F(TestRtpFrameReferenceFinder, Vp9GofSkipFramesTemporalLayers_0212) {
|
||||
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 @@ TEST_F(TestRtpFrameReferenceFinder, Vp9GofTemporalLayers_0212) {
|
||||
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 @@ TEST_F(TestRtpFrameReferenceFinder, Vp9GofTemporalLayersReordered_0212) {
|
||||
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 @@ TEST_F(TestRtpFrameReferenceFinder, Vp9GofTemporalLayersReordered_01_0212) {
|
||||
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) {
|
||||
|
@ -3276,7 +3276,8 @@ class Vp9HeaderObserver : public test::SendTest {
|
||||
EXPECT_TRUE(vp9.temporal_up_switch);
|
||||
break;
|
||||
case 2:
|
||||
EXPECT_EQ(last_vp9_.temporal_idx == 0, vp9.temporal_up_switch);
|
||||
EXPECT_LT(last_vp9_.temporal_idx, 2);
|
||||
EXPECT_TRUE(vp9.temporal_up_switch);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user