Index: webrtc/modules/rtp_rtcp/source/rtp_format_vp9_unittest.cc |
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_format_vp9_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtp_format_vp9_unittest.cc |
index fad0d1b4355544a3b03cc49422e0455a597c35d8..4d94cb92aebd2463e99dcdb454c77cfeeb34a63c 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtp_format_vp9_unittest.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtp_format_vp9_unittest.cc |
@@ -337,7 +337,7 @@ TEST_F(RtpPacketizerVp9Test, TestRefIdxFailsWithoutPictureId) { |
TEST_F(RtpPacketizerVp9Test, TestSsDataWithoutSpatialResolutionPresent) { |
const size_t kFrameSize = 21; |
- const size_t kPacketSize = 25; |
+ const size_t kPacketSize = 26; |
expected_.ss_data_available = true; |
expected_.num_spatial_layers = 1; |
@@ -350,18 +350,38 @@ TEST_F(RtpPacketizerVp9Test, TestSsDataWithoutSpatialResolutionPresent) { |
Init(kFrameSize, kPacketSize); |
// One packet: |
- // I:0, P:0, L:0, F:0, B:1, E:1, V:1 (4hdr + 21 payload) |
- // N_S:0, Y:0, N_G:0 |
+ // I:0, P:0, L:0, F:0, B:1, E:1, V:1 (5hdr + 21 payload) |
+ // N_S:0, Y:0, G:1 |
+ // N_G:1 |
// T:0, U:1, R:1 | P_DIFF[0][0]:4 |
- const size_t kExpectedHdrSizes[] = {4}; |
- const size_t kExpectedSizes[] = {25}; |
+ const size_t kExpectedHdrSizes[] = {5}; |
+ const size_t kExpectedSizes[] = {26}; |
+ const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
+ CreateParseAndCheckPackets(kExpectedHdrSizes, kExpectedSizes, kExpectedNum); |
+} |
+ |
+TEST_F(RtpPacketizerVp9Test, TestSsDataWithoutGbitPresent) { |
+ const size_t kFrameSize = 21; |
+ const size_t kPacketSize = 23; |
+ |
+ expected_.ss_data_available = true; |
+ expected_.num_spatial_layers = 1; |
+ expected_.spatial_layer_resolution_present = false; |
+ expected_.gof.num_frames_in_gof = 0; |
+ Init(kFrameSize, kPacketSize); |
+ |
+ // One packet: |
+ // I:0, P:0, L:0, F:0, B:1, E:1, V:1 (2hdr + 21 payload) |
+ // N_S:0, Y:0, G:0 |
+ const size_t kExpectedHdrSizes[] = {2}; |
+ const size_t kExpectedSizes[] = {23}; |
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
CreateParseAndCheckPackets(kExpectedHdrSizes, kExpectedSizes, kExpectedNum); |
} |
TEST_F(RtpPacketizerVp9Test, TestSsData) { |
const size_t kFrameSize = 21; |
- const size_t kPacketSize = 39; |
+ const size_t kPacketSize = 40; |
expected_.ss_data_available = true; |
expected_.num_spatial_layers = 2; |
@@ -388,17 +408,18 @@ TEST_F(RtpPacketizerVp9Test, TestSsData) { |
Init(kFrameSize, kPacketSize); |
// One packet: |
- // I:0, P:0, L:0, F:0, B:1, E:1, V:1 (18hdr + 21 payload) |
- // N_S:1, Y:1, N_G:2 |
+ // I:0, P:0, L:0, F:0, B:1, E:1, V:1 (19hdr + 21 payload) |
+ // N_S:1, Y:1, G:1 |
// WIDTH:640 // 2 bytes |
// HEIGHT:360 // 2 bytes |
// WIDTH:1280 // 2 bytes |
// HEIGHT:720 // 2 bytes |
+ // N_G:3 |
// T:0, U:1, R:0 |
// T:1, U:1, R:3 | P_DIFF[1][0]:5 | P_DIFF[1][1]:6 | P_DIFF[1][2]:7 |
// T:2, U:0, R:2 | P_DIFF[2][0]:8 | P_DIFF[2][0]:9 |
- const size_t kExpectedHdrSizes[] = {18}; |
- const size_t kExpectedSizes[] = {39}; |
+ const size_t kExpectedHdrSizes[] = {19}; |
+ const size_t kExpectedSizes[] = {40}; |
const size_t kExpectedNum = GTEST_ARRAY_SIZE_(kExpectedSizes); |
CreateParseAndCheckPackets(kExpectedHdrSizes, kExpectedSizes, kExpectedNum); |
} |
@@ -578,16 +599,17 @@ TEST_F(RtpDepacketizerVp9Test, ParseRefIdxFailsWithTooManyRefPics) { |
} |
TEST_F(RtpDepacketizerVp9Test, ParseSsData) { |
- const uint8_t kHeaderLength = 5; |
+ const uint8_t kHeaderLength = 6; |
const uint8_t kYbit = 0; |
const size_t kNs = 2; |
const size_t kNg = 2; |
uint8_t packet[23] = {0}; |
packet[0] = 0x0A; // I:0 P:0 L:0 F:0 B:1 E:0 V:1 R:0 |
- packet[1] = ((kNs - 1) << 5) | (kYbit << 4) | (kNg - 1); // N_S Y N_G |
- packet[2] = (0 << 5) | (1 << 4) | (0 << 2) | 0; // T:0 U:1 R:0 - |
- packet[3] = (2 << 5) | (0 << 4) | (1 << 2) | 0; // T:2 U:0 R:1 - |
- packet[4] = 33; |
+ packet[1] = ((kNs - 1) << 5) | (kYbit << 4) | (1 << 3); // N_S Y G:1 - |
+ packet[2] = kNg; // N_G |
+ packet[3] = (0 << 5) | (1 << 4) | (0 << 2) | 0; // T:0 U:1 R:0 - |
+ packet[4] = (2 << 5) | (0 << 4) | (1 << 2) | 0; // T:2 U:0 R:1 - |
+ packet[5] = 33; |
expected_.beginning_of_frame = true; |
expected_.ss_data_available = true; |
@@ -629,7 +651,7 @@ TEST_F(RtpDepacketizerVp9Test, ParseResolution) { |
const uint16_t kHeight[2] = {360, 720}; |
uint8_t packet[20] = {0}; |
packet[0] = 0x0A; // I:0 P:0 L:0 F:0 B:1 E:0 V:1 R:0 |
- packet[1] = (1 << 5) | (1 << 4) | 0; // N_S:1 Y:1 N_G:0 |
+ packet[1] = (1 << 5) | (1 << 4) | 0; // N_S:1 Y:1 G:0 |
packet[2] = kWidth[0] >> 8; |
packet[3] = kWidth[0] & 0xFF; |
packet[4] = kHeight[0] >> 8; |
@@ -638,7 +660,6 @@ TEST_F(RtpDepacketizerVp9Test, ParseResolution) { |
packet[7] = kWidth[1] & 0xFF; |
packet[8] = kHeight[1] >> 8; |
packet[9] = kHeight[1] & 0xFF; |
- packet[10] = 0; // T:0 U:0 R:0 - |
RtpDepacketizer::ParsedPayload parsed; |
ASSERT_TRUE(depacketizer_->Parse(&parsed, packet, sizeof(packet))); |