aboutsummaryrefslogtreecommitdiff
path: root/modules/audio_coding/neteq/tools/packet_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'modules/audio_coding/neteq/tools/packet_unittest.cc')
-rw-r--r--modules/audio_coding/neteq/tools/packet_unittest.cc51
1 files changed, 39 insertions, 12 deletions
diff --git a/modules/audio_coding/neteq/tools/packet_unittest.cc b/modules/audio_coding/neteq/tools/packet_unittest.cc
index 7f3d6630c3..7cc9a48ee6 100644
--- a/modules/audio_coding/neteq/tools/packet_unittest.cc
+++ b/modules/audio_coding/neteq/tools/packet_unittest.cc
@@ -42,16 +42,15 @@ void MakeRtpHeader(int payload_type,
TEST(TestPacket, RegularPacket) {
const size_t kPacketLengthBytes = 100;
- uint8_t* packet_memory = new uint8_t[kPacketLengthBytes];
+ rtc::CopyOnWriteBuffer packet_memory(kPacketLengthBytes);
const uint8_t kPayloadType = 17;
const uint16_t kSequenceNumber = 4711;
const uint32_t kTimestamp = 47114711;
const uint32_t kSsrc = 0x12345678;
MakeRtpHeader(kPayloadType, kSequenceNumber, kTimestamp, kSsrc,
- packet_memory);
+ packet_memory.MutableData());
const double kPacketTime = 1.0;
- // Hand over ownership of |packet_memory| to |packet|.
- Packet packet(packet_memory, kPacketLengthBytes, kPacketTime);
+ Packet packet(std::move(packet_memory), kPacketTime);
ASSERT_TRUE(packet.valid_header());
EXPECT_EQ(kPayloadType, packet.header().payloadType);
EXPECT_EQ(kSequenceNumber, packet.header().sequenceNumber);
@@ -70,16 +69,44 @@ TEST(TestPacket, RegularPacket) {
TEST(TestPacket, DummyPacket) {
const size_t kPacketLengthBytes = kHeaderLengthBytes; // Only RTP header.
const size_t kVirtualPacketLengthBytes = 100;
- uint8_t* packet_memory = new uint8_t[kPacketLengthBytes];
+ rtc::CopyOnWriteBuffer packet_memory(kPacketLengthBytes);
const uint8_t kPayloadType = 17;
const uint16_t kSequenceNumber = 4711;
const uint32_t kTimestamp = 47114711;
const uint32_t kSsrc = 0x12345678;
MakeRtpHeader(kPayloadType, kSequenceNumber, kTimestamp, kSsrc,
- packet_memory);
+ packet_memory.MutableData());
const double kPacketTime = 1.0;
- // Hand over ownership of |packet_memory| to |packet|.
- Packet packet(packet_memory, kPacketLengthBytes, kVirtualPacketLengthBytes,
+ Packet packet(std::move(packet_memory), kVirtualPacketLengthBytes,
+ kPacketTime);
+ ASSERT_TRUE(packet.valid_header());
+ EXPECT_EQ(kPayloadType, packet.header().payloadType);
+ EXPECT_EQ(kSequenceNumber, packet.header().sequenceNumber);
+ EXPECT_EQ(kTimestamp, packet.header().timestamp);
+ EXPECT_EQ(kSsrc, packet.header().ssrc);
+ EXPECT_EQ(0, packet.header().numCSRCs);
+ EXPECT_EQ(kPacketLengthBytes, packet.packet_length_bytes());
+ EXPECT_EQ(kPacketLengthBytes - kHeaderLengthBytes,
+ packet.payload_length_bytes());
+ EXPECT_EQ(kVirtualPacketLengthBytes, packet.virtual_packet_length_bytes());
+ EXPECT_EQ(kVirtualPacketLengthBytes - kHeaderLengthBytes,
+ packet.virtual_payload_length_bytes());
+ EXPECT_EQ(kPacketTime, packet.time_ms());
+}
+
+TEST(TestPacket, DummyPaddingPacket) {
+ const size_t kPacketLengthBytes = kHeaderLengthBytes; // Only RTP header.
+ const size_t kVirtualPacketLengthBytes = 100;
+ rtc::CopyOnWriteBuffer packet_memory(kPacketLengthBytes);
+ const uint8_t kPayloadType = 17;
+ const uint16_t kSequenceNumber = 4711;
+ const uint32_t kTimestamp = 47114711;
+ const uint32_t kSsrc = 0x12345678;
+ MakeRtpHeader(kPayloadType, kSequenceNumber, kTimestamp, kSsrc,
+ packet_memory.MutableData());
+ packet_memory.MutableData()[0] |= 0b0010'0000; // Set the padding bit.
+ const double kPacketTime = 1.0;
+ Packet packet(std::move(packet_memory), kVirtualPacketLengthBytes,
kPacketTime);
ASSERT_TRUE(packet.valid_header());
EXPECT_EQ(kPayloadType, packet.header().payloadType);
@@ -133,19 +160,19 @@ int MakeRedHeader(int payload_type,
TEST(TestPacket, RED) {
const size_t kPacketLengthBytes = 100;
- uint8_t* packet_memory = new uint8_t[kPacketLengthBytes];
+ rtc::CopyOnWriteBuffer packet_memory(kPacketLengthBytes);
const uint8_t kRedPayloadType = 17;
const uint16_t kSequenceNumber = 4711;
const uint32_t kTimestamp = 47114711;
const uint32_t kSsrc = 0x12345678;
MakeRtpHeader(kRedPayloadType, kSequenceNumber, kTimestamp, kSsrc,
- packet_memory);
+ packet_memory.MutableData());
// Create four RED headers.
// Payload types are just the same as the block index the offset is 100 times
// the block index.
const int kRedBlocks = 4;
- uint8_t* payload_ptr =
- &packet_memory[kHeaderLengthBytes]; // First byte after header.
+ uint8_t* payload_ptr = packet_memory.MutableData() +
+ kHeaderLengthBytes; // First byte after header.
for (int i = 0; i < kRedBlocks; ++i) {
int payload_type = i;
// Offset value is not used for the last block.