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:
Sergey Silkin
2018-05-07 09:17:12 +02:00
committed by Commit Bot
parent a29b148557
commit 377ef24a8f
4 changed files with 20 additions and 21 deletions

View File

@ -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;

View File

@ -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>,

View File

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

View File

@ -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;
}
}