| 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" |
| 11 #include "webrtc/modules/rtp_rtcp/source/rtp_packet_to_send.h" | 11 #include "webrtc/modules/rtp_rtcp/source/rtp_packet_to_send.h" |
| 12 | 12 |
| 13 #include "webrtc/base/random.h" | 13 #include "webrtc/base/random.h" |
| 14 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extension.h" | 14 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extension.h" |
| 15 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h" | 15 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h" |
| 16 #include "webrtc/test/gmock.h" | 16 #include "webrtc/test/gmock.h" |
| 17 #include "webrtc/test/gtest.h" | 17 #include "webrtc/test/gtest.h" |
| 18 | 18 |
| 19 using testing::ElementsAreArray; | |
| 20 using testing::make_tuple; | |
| 21 | |
| 22 namespace webrtc { | 19 namespace webrtc { |
| 23 namespace { | 20 namespace { |
| 21 using ::testing::ElementsAreArray; |
| 22 using ::testing::IsEmpty; |
| 23 using ::testing::make_tuple; |
| 24 |
| 24 constexpr int8_t kPayloadType = 100; | 25 constexpr int8_t kPayloadType = 100; |
| 25 constexpr uint32_t kSsrc = 0x12345678; | 26 constexpr uint32_t kSsrc = 0x12345678; |
| 26 constexpr uint16_t kSeqNum = 88; | 27 constexpr uint16_t kSeqNum = 88; |
| 27 constexpr uint32_t kTimestamp = 0x65431278; | 28 constexpr uint32_t kTimestamp = 0x65431278; |
| 28 constexpr uint8_t kTransmissionOffsetExtensionId = 1; | 29 constexpr uint8_t kTransmissionOffsetExtensionId = 1; |
| 29 constexpr uint8_t kAudioLevelExtensionId = 9; | 30 constexpr uint8_t kAudioLevelExtensionId = 9; |
| 30 constexpr int32_t kTimeOffset = 0x56ce; | 31 constexpr int32_t kTimeOffset = 0x56ce; |
| 31 constexpr bool kVoiceActive = true; | 32 constexpr bool kVoiceActive = true; |
| 32 constexpr uint8_t kAudioLevel = 0x5a; | 33 constexpr uint8_t kAudioLevel = 0x5a; |
| 33 constexpr size_t kMaxPaddingSize = 224u; | 34 constexpr size_t kMaxPaddingSize = 224u; |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 EXPECT_TRUE(packet.HasRawExtension(kTransmissionOffsetExtensionId)); | 357 EXPECT_TRUE(packet.HasRawExtension(kTransmissionOffsetExtensionId)); |
| 357 | 358 |
| 358 int32_t time_offset = 0; | 359 int32_t time_offset = 0; |
| 359 auto raw_extension = packet.GetRawExtension(kTransmissionOffsetExtensionId); | 360 auto raw_extension = packet.GetRawExtension(kTransmissionOffsetExtensionId); |
| 360 EXPECT_EQ(raw_extension.size(), TransmissionOffset::kValueSizeBytes); | 361 EXPECT_EQ(raw_extension.size(), TransmissionOffset::kValueSizeBytes); |
| 361 EXPECT_TRUE(TransmissionOffset::Parse(raw_extension, &time_offset)); | 362 EXPECT_TRUE(TransmissionOffset::Parse(raw_extension, &time_offset)); |
| 362 | 363 |
| 363 EXPECT_EQ(time_offset, kTimeOffset); | 364 EXPECT_EQ(time_offset, kTimeOffset); |
| 364 } | 365 } |
| 365 | 366 |
| 367 TEST(RtpPacketTest, RawExtensionFunctionsAcceptZeroIdAndReturnFalse) { |
| 368 RtpPacketReceived::ExtensionManager extensions; |
| 369 RtpPacketReceived packet(&extensions); |
| 370 // Use ExtensionManager to set kInvalidId to 0 to demonstrate natural way for |
| 371 // using zero value as a parameter to Packet::*RawExtension functions. |
| 372 const int kInvalidId = extensions.GetId(TransmissionOffset::kId); |
| 373 ASSERT_EQ(kInvalidId, 0); |
| 374 |
| 375 ASSERT_TRUE(packet.Parse(kPacket, sizeof(kPacket))); |
| 376 |
| 377 EXPECT_FALSE(packet.HasRawExtension(kInvalidId)); |
| 378 EXPECT_THAT(packet.GetRawExtension(kInvalidId), IsEmpty()); |
| 379 const uint8_t kExtension[] = {'e', 'x', 't'}; |
| 380 EXPECT_FALSE(packet.SetRawExtension(kInvalidId, kExtension)); |
| 381 EXPECT_THAT(packet.AllocateRawExtension(kInvalidId, 3), IsEmpty()); |
| 382 } |
| 383 |
| 366 } // namespace webrtc | 384 } // namespace webrtc |
| OLD | NEW |