| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 #include "webrtc/modules/rtp_rtcp/source/rtp_packet_received.h" | 10 #include "webrtc/modules/rtp_rtcp/source/rtp_packet_received.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 using ::testing::ElementsAreArray; | 21 using ::testing::ElementsAreArray; |
| 22 using ::testing::IsEmpty; | 22 using ::testing::IsEmpty; |
| 23 using ::testing::make_tuple; | 23 using ::testing::make_tuple; |
| 24 | 24 |
| 25 constexpr int8_t kPayloadType = 100; | 25 constexpr int8_t kPayloadType = 100; |
| 26 constexpr uint32_t kSsrc = 0x12345678; | 26 constexpr uint32_t kSsrc = 0x12345678; |
| 27 constexpr uint16_t kSeqNum = 88; | 27 constexpr uint16_t kSeqNum = 88; |
| 28 constexpr uint32_t kTimestamp = 0x65431278; | 28 constexpr uint32_t kTimestamp = 0x65431278; |
| 29 constexpr uint8_t kTransmissionOffsetExtensionId = 1; | 29 constexpr uint8_t kTransmissionOffsetExtensionId = 1; |
| 30 constexpr uint8_t kAudioLevelExtensionId = 9; | 30 constexpr uint8_t kAudioLevelExtensionId = 9; |
| 31 constexpr uint8_t kRtpStreamIdExtensionId = 0xa; |
| 31 constexpr int32_t kTimeOffset = 0x56ce; | 32 constexpr int32_t kTimeOffset = 0x56ce; |
| 32 constexpr bool kVoiceActive = true; | 33 constexpr bool kVoiceActive = true; |
| 33 constexpr uint8_t kAudioLevel = 0x5a; | 34 constexpr uint8_t kAudioLevel = 0x5a; |
| 35 constexpr char kStreamId[] = "streamid"; |
| 34 constexpr size_t kMaxPaddingSize = 224u; | 36 constexpr size_t kMaxPaddingSize = 224u; |
| 35 // clang-format off | 37 // clang-format off |
| 36 constexpr uint8_t kMinimumPacket[] = { | 38 constexpr uint8_t kMinimumPacket[] = { |
| 37 0x80, kPayloadType, 0x00, kSeqNum, | 39 0x80, kPayloadType, 0x00, kSeqNum, |
| 38 0x65, 0x43, 0x12, 0x78, | 40 0x65, 0x43, 0x12, 0x78, |
| 39 0x12, 0x34, 0x56, 0x78}; | 41 0x12, 0x34, 0x56, 0x78}; |
| 42 |
| 40 constexpr uint8_t kPacketWithTO[] = { | 43 constexpr uint8_t kPacketWithTO[] = { |
| 41 0x90, kPayloadType, 0x00, kSeqNum, | 44 0x90, kPayloadType, 0x00, kSeqNum, |
| 42 0x65, 0x43, 0x12, 0x78, | 45 0x65, 0x43, 0x12, 0x78, |
| 43 0x12, 0x34, 0x56, 0x78, | 46 0x12, 0x34, 0x56, 0x78, |
| 44 0xbe, 0xde, 0x00, 0x01, | 47 0xbe, 0xde, 0x00, 0x01, |
| 45 0x12, 0x00, 0x56, 0xce}; | 48 0x12, 0x00, 0x56, 0xce}; |
| 46 | 49 |
| 47 constexpr uint8_t kPacketWithTOAndAL[] = { | 50 constexpr uint8_t kPacketWithTOAndAL[] = { |
| 48 0x90, kPayloadType, 0x00, kSeqNum, | 51 0x90, kPayloadType, 0x00, kSeqNum, |
| 49 0x65, 0x43, 0x12, 0x78, | 52 0x65, 0x43, 0x12, 0x78, |
| 50 0x12, 0x34, 0x56, 0x78, | 53 0x12, 0x34, 0x56, 0x78, |
| 51 0xbe, 0xde, 0x00, 0x02, | 54 0xbe, 0xde, 0x00, 0x02, |
| 52 0x12, 0x00, 0x56, 0xce, | 55 0x12, 0x00, 0x56, 0xce, |
| 53 0x90, 0x80|kAudioLevel, 0x00, 0x00}; | 56 0x90, 0x80|kAudioLevel, 0x00, 0x00}; |
| 54 | 57 |
| 58 constexpr uint8_t kPacketWithRsid[] = { |
| 59 0x90, kPayloadType, 0x00, kSeqNum, |
| 60 0x65, 0x43, 0x12, 0x78, |
| 61 0x12, 0x34, 0x56, 0x78, |
| 62 0xbe, 0xde, 0x00, 0x03, |
| 63 0xa7, 's', 't', 'r', |
| 64 'e', 'a', 'm', 'i', |
| 65 'd' , 0x00, 0x00, 0x00}; |
| 66 |
| 55 constexpr uint32_t kCsrcs[] = {0x34567890, 0x32435465}; | 67 constexpr uint32_t kCsrcs[] = {0x34567890, 0x32435465}; |
| 56 constexpr uint8_t kPayload[] = {'p', 'a', 'y', 'l', 'o', 'a', 'd'}; | 68 constexpr uint8_t kPayload[] = {'p', 'a', 'y', 'l', 'o', 'a', 'd'}; |
| 57 constexpr uint8_t kPacketPaddingSize = 8; | 69 constexpr uint8_t kPacketPaddingSize = 8; |
| 58 constexpr uint8_t kPacket[] = { | 70 constexpr uint8_t kPacket[] = { |
| 59 0xb2, kPayloadType, 0x00, kSeqNum, | 71 0xb2, kPayloadType, 0x00, kSeqNum, |
| 60 0x65, 0x43, 0x12, 0x78, | 72 0x65, 0x43, 0x12, 0x78, |
| 61 0x12, 0x34, 0x56, 0x78, | 73 0x12, 0x34, 0x56, 0x78, |
| 62 0x34, 0x56, 0x78, 0x90, | 74 0x34, 0x56, 0x78, 0x90, |
| 63 0x32, 0x43, 0x54, 0x65, | 75 0x32, 0x43, 0x54, 0x65, |
| 64 0xbe, 0xde, 0x00, 0x01, | 76 0xbe, 0xde, 0x00, 0x01, |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 packet.SetPayloadType(kPayloadType); | 122 packet.SetPayloadType(kPayloadType); |
| 111 packet.SetSequenceNumber(kSeqNum); | 123 packet.SetSequenceNumber(kSeqNum); |
| 112 packet.SetTimestamp(kTimestamp); | 124 packet.SetTimestamp(kTimestamp); |
| 113 packet.SetSsrc(kSsrc); | 125 packet.SetSsrc(kSsrc); |
| 114 packet.SetExtension<TransmissionOffset>(kTimeOffset); | 126 packet.SetExtension<TransmissionOffset>(kTimeOffset); |
| 115 packet.SetExtension<AudioLevel>(kVoiceActive, kAudioLevel); | 127 packet.SetExtension<AudioLevel>(kVoiceActive, kAudioLevel); |
| 116 EXPECT_THAT(kPacketWithTOAndAL, | 128 EXPECT_THAT(kPacketWithTOAndAL, |
| 117 ElementsAreArray(packet.data(), packet.size())); | 129 ElementsAreArray(packet.data(), packet.size())); |
| 118 } | 130 } |
| 119 | 131 |
| 132 TEST(RtpPacketTest, CreateWithDynamicSizedExtensions) { |
| 133 RtpPacketToSend::ExtensionManager extensions; |
| 134 extensions.Register<RtpStreamId>(kRtpStreamIdExtensionId); |
| 135 RtpPacketToSend packet(&extensions); |
| 136 packet.SetPayloadType(kPayloadType); |
| 137 packet.SetSequenceNumber(kSeqNum); |
| 138 packet.SetTimestamp(kTimestamp); |
| 139 packet.SetSsrc(kSsrc); |
| 140 packet.SetExtension<RtpStreamId>(kStreamId); |
| 141 EXPECT_THAT(kPacketWithRsid, ElementsAreArray(packet.data(), packet.size())); |
| 142 } |
| 143 |
| 144 TEST(RtpPacketTest, TryToCreateWithEmptyRsid) { |
| 145 RtpPacketToSend::ExtensionManager extensions; |
| 146 extensions.Register<RtpStreamId>(kRtpStreamIdExtensionId); |
| 147 RtpPacketToSend packet(&extensions); |
| 148 EXPECT_FALSE(packet.SetExtension<RtpStreamId>("")); |
| 149 } |
| 150 |
| 151 TEST(RtpPacketTest, TryToCreateWithLongRsid) { |
| 152 RtpPacketToSend::ExtensionManager extensions; |
| 153 constexpr char kLongStreamId[] = "LoooooooooongRsid"; |
| 154 ASSERT_EQ(strlen(kLongStreamId), 17u); |
| 155 extensions.Register<RtpStreamId>(kRtpStreamIdExtensionId); |
| 156 RtpPacketToSend packet(&extensions); |
| 157 EXPECT_FALSE(packet.SetExtension<RtpStreamId>(kLongStreamId)); |
| 158 } |
| 159 |
| 120 TEST(RtpPacketTest, CreateWithExtensionsWithoutManager) { | 160 TEST(RtpPacketTest, CreateWithExtensionsWithoutManager) { |
| 121 RtpPacketToSend packet(nullptr); | 161 RtpPacketToSend packet(nullptr); |
| 122 packet.SetPayloadType(kPayloadType); | 162 packet.SetPayloadType(kPayloadType); |
| 123 packet.SetSequenceNumber(kSeqNum); | 163 packet.SetSequenceNumber(kSeqNum); |
| 124 packet.SetTimestamp(kTimestamp); | 164 packet.SetTimestamp(kTimestamp); |
| 125 packet.SetSsrc(kSsrc); | 165 packet.SetSsrc(kSsrc); |
| 126 | 166 |
| 127 auto raw = packet.AllocateRawExtension(kTransmissionOffsetExtensionId, | 167 auto raw = packet.AllocateRawExtension(kTransmissionOffsetExtensionId, |
| 128 TransmissionOffset::kValueSizeBytes); | 168 TransmissionOffset::kValueSizeBytes); |
| 129 EXPECT_EQ(raw.size(), TransmissionOffset::kValueSizeBytes); | 169 EXPECT_EQ(raw.size(), TransmissionOffset::kValueSizeBytes); |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 ASSERT_TRUE(packet.Parse(kPacket, sizeof(kPacket))); | 454 ASSERT_TRUE(packet.Parse(kPacket, sizeof(kPacket))); |
| 415 | 455 |
| 416 EXPECT_FALSE(packet.HasRawExtension(kInvalidId)); | 456 EXPECT_FALSE(packet.HasRawExtension(kInvalidId)); |
| 417 EXPECT_THAT(packet.GetRawExtension(kInvalidId), IsEmpty()); | 457 EXPECT_THAT(packet.GetRawExtension(kInvalidId), IsEmpty()); |
| 418 const uint8_t kExtension[] = {'e', 'x', 't'}; | 458 const uint8_t kExtension[] = {'e', 'x', 't'}; |
| 419 EXPECT_FALSE(packet.SetRawExtension(kInvalidId, kExtension)); | 459 EXPECT_FALSE(packet.SetRawExtension(kInvalidId, kExtension)); |
| 420 EXPECT_THAT(packet.AllocateRawExtension(kInvalidId, 3), IsEmpty()); | 460 EXPECT_THAT(packet.AllocateRawExtension(kInvalidId, 3), IsEmpty()); |
| 421 } | 461 } |
| 422 | 462 |
| 423 } // namespace webrtc | 463 } // namespace webrtc |
| OLD | NEW |