Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(36)

Unified Diff: webrtc/modules/audio_coding/neteq/neteq_unittest.cc

Issue 2809153002: Change from WebRtcRTPHeader to RTPHeader in NetEq tests and tools (Closed)
Patch Set: Fixing neteq_rtp_fuzzer Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_coding/neteq/neteq_unittest.cc
diff --git a/webrtc/modules/audio_coding/neteq/neteq_unittest.cc b/webrtc/modules/audio_coding/neteq/neteq_unittest.cc
index 1a54c54c39453e0faefe821c62738348cfd97a03..68a4921147a788b82cb19db4ffe56c10edfeabe2 100644
--- a/webrtc/modules/audio_coding/neteq/neteq_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/neteq_unittest.cc
@@ -23,9 +23,10 @@
#include "gflags/gflags.h"
#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
#include "webrtc/base/ignore_wundef.h"
+#include "webrtc/base/protobuf_utils.h"
#include "webrtc/base/sha1digest.h"
#include "webrtc/base/stringencode.h"
-#include "webrtc/base/protobuf_utils.h"
+#include "webrtc/common_types.h"
#include "webrtc/modules/audio_coding/codecs/pcm16b/pcm16b.h"
#include "webrtc/modules/audio_coding/neteq/tools/audio_loop.h"
#include "webrtc/modules/audio_coding/neteq/tools/rtp_file_source.h"
@@ -250,10 +251,10 @@ class NetEqDecodingTest : public ::testing::Test {
static void PopulateRtpInfo(int frame_index,
int timestamp,
- WebRtcRTPHeader* rtp_info);
+ RTPHeader* rtp_info);
static void PopulateCng(int frame_index,
int timestamp,
- WebRtcRTPHeader* rtp_info,
+ RTPHeader* rtp_info,
uint8_t* payload,
size_t* payload_len);
@@ -318,15 +319,13 @@ void NetEqDecodingTest::Process() {
// Check if time to receive.
while (packet_ && sim_clock_ >= packet_->time_ms()) {
if (packet_->payload_length_bytes() > 0) {
- WebRtcRTPHeader rtp_header;
- packet_->ConvertHeader(&rtp_header);
#ifndef WEBRTC_CODEC_ISAC
// Ignore payload type 104 (iSAC-swb) if ISAC is not supported.
- if (rtp_header.header.payloadType != 104)
+ if (packet_->header().payloadType != 104)
#endif
ASSERT_EQ(0,
neteq_->InsertPacket(
- rtp_header.header,
+ packet_->header(),
rtc::ArrayView<const uint8_t>(
packet_->payload(), packet_->payload_length_bytes()),
static_cast<uint32_t>(packet_->time_ms() *
@@ -409,24 +408,24 @@ void NetEqDecodingTest::DecodeAndCompare(
void NetEqDecodingTest::PopulateRtpInfo(int frame_index,
int timestamp,
- WebRtcRTPHeader* rtp_info) {
- rtp_info->header.sequenceNumber = frame_index;
- rtp_info->header.timestamp = timestamp;
- rtp_info->header.ssrc = 0x1234; // Just an arbitrary SSRC.
- rtp_info->header.payloadType = 94; // PCM16b WB codec.
- rtp_info->header.markerBit = 0;
+ RTPHeader* rtp_info) {
+ rtp_info->sequenceNumber = frame_index;
+ rtp_info->timestamp = timestamp;
+ rtp_info->ssrc = 0x1234; // Just an arbitrary SSRC.
+ rtp_info->payloadType = 94; // PCM16b WB codec.
+ rtp_info->markerBit = 0;
}
void NetEqDecodingTest::PopulateCng(int frame_index,
int timestamp,
- WebRtcRTPHeader* rtp_info,
+ RTPHeader* rtp_info,
uint8_t* payload,
size_t* payload_len) {
- rtp_info->header.sequenceNumber = frame_index;
- rtp_info->header.timestamp = timestamp;
- rtp_info->header.ssrc = 0x1234; // Just an arbitrary SSRC.
- rtp_info->header.payloadType = 98; // WB CNG.
- rtp_info->header.markerBit = 0;
+ rtp_info->sequenceNumber = frame_index;
+ rtp_info->timestamp = timestamp;
+ rtp_info->ssrc = 0x1234; // Just an arbitrary SSRC.
+ rtp_info->payloadType = 98; // WB CNG.
+ rtp_info->markerBit = 0;
payload[0] = 64; // Noise level -64 dBov, quite arbitrarily chosen.
*payload_len = 1; // Only noise level, no spectral parameters.
}
@@ -521,13 +520,13 @@ TEST_F(NetEqDecodingTestFaxMode, TestFrameWaitingTimeStatistics) {
const size_t kPayloadBytes = kSamples * 2;
for (size_t i = 0; i < num_frames; ++i) {
const uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
- rtp_info.header.sequenceNumber = i;
- rtp_info.header.timestamp = i * kSamples;
- rtp_info.header.ssrc = 0x1234; // Just an arbitrary SSRC.
- rtp_info.header.payloadType = 94; // PCM16b WB codec.
- rtp_info.header.markerBit = 0;
- ASSERT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload, 0));
+ RTPHeader rtp_info;
+ rtp_info.sequenceNumber = i;
+ rtp_info.timestamp = i * kSamples;
+ rtp_info.ssrc = 0x1234; // Just an arbitrary SSRC.
+ rtp_info.payloadType = 94; // PCM16b WB codec.
+ rtp_info.markerBit = 0;
+ ASSERT_EQ(0, neteq_->InsertPacket(rtp_info, payload, 0));
}
// Pull out all data.
for (size_t i = 0; i < num_frames; ++i) {
@@ -566,9 +565,9 @@ TEST_F(NetEqDecodingTest, TestAverageInterArrivalTimeNegative) {
int num_packets = (frame_index % 10 == 0 ? 2 : 1);
for (int n = 0; n < num_packets; ++n) {
uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateRtpInfo(frame_index, frame_index * kSamples, &rtp_info);
- ASSERT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload, 0));
+ ASSERT_EQ(0, neteq_->InsertPacket(rtp_info, payload, 0));
++frame_index;
}
@@ -594,9 +593,9 @@ TEST_F(NetEqDecodingTest, TestAverageInterArrivalTimePositive) {
int num_packets = (i % 10 == 9 ? 0 : 1);
for (int n = 0; n < num_packets; ++n) {
uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateRtpInfo(frame_index, frame_index * kSamples, &rtp_info);
- ASSERT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload, 0));
+ ASSERT_EQ(0, neteq_->InsertPacket(rtp_info, payload, 0));
++frame_index;
}
@@ -632,9 +631,9 @@ void NetEqDecodingTest::LongCngWithClockDrift(double drift_factor,
while (next_input_time_ms <= t_ms) {
// Insert one 30 ms speech frame.
uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateRtpInfo(seq_no, timestamp, &rtp_info);
- ASSERT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload, 0));
+ ASSERT_EQ(0, neteq_->InsertPacket(rtp_info, payload, 0));
++seq_no;
timestamp += kSamples;
next_input_time_ms += static_cast<double>(kFrameSizeMs) * drift_factor;
@@ -659,10 +658,10 @@ void NetEqDecodingTest::LongCngWithClockDrift(double drift_factor,
// Insert one CNG frame each 100 ms.
uint8_t payload[kPayloadBytes];
size_t payload_len;
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateCng(seq_no, timestamp, &rtp_info, payload, &payload_len);
ASSERT_EQ(0, neteq_->InsertPacket(
- rtp_info.header,
+ rtp_info,
rtc::ArrayView<const uint8_t>(payload, payload_len), 0));
++seq_no;
timestamp += kCngPeriodSamples;
@@ -702,10 +701,10 @@ void NetEqDecodingTest::LongCngWithClockDrift(double drift_factor,
// Insert one CNG frame each 100 ms.
uint8_t payload[kPayloadBytes];
size_t payload_len;
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateCng(seq_no, timestamp, &rtp_info, payload, &payload_len);
ASSERT_EQ(0, neteq_->InsertPacket(
- rtp_info.header,
+ rtp_info,
rtc::ArrayView<const uint8_t>(payload, payload_len), 0));
++seq_no;
timestamp += kCngPeriodSamples;
@@ -720,9 +719,9 @@ void NetEqDecodingTest::LongCngWithClockDrift(double drift_factor,
while (next_input_time_ms <= t_ms) {
// Insert one 30 ms speech frame.
uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateRtpInfo(seq_no, timestamp, &rtp_info);
- ASSERT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload, 0));
+ ASSERT_EQ(0, neteq_->InsertPacket(rtp_info, payload, 0));
++seq_no;
timestamp += kSamples;
next_input_time_ms += kFrameSizeMs * drift_factor;
@@ -831,10 +830,10 @@ TEST_F(NetEqDecodingTest, LongCngWithoutClockDrift) {
TEST_F(NetEqDecodingTest, UnknownPayloadType) {
const size_t kPayloadBytes = 100;
uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateRtpInfo(0, 0, &rtp_info);
- rtp_info.header.payloadType = 1; // Not registered as a decoder.
- EXPECT_EQ(NetEq::kFail, neteq_->InsertPacket(rtp_info.header, payload, 0));
+ rtp_info.payloadType = 1; // Not registered as a decoder.
+ EXPECT_EQ(NetEq::kFail, neteq_->InsertPacket(rtp_info, payload, 0));
EXPECT_EQ(NetEq::kUnknownRtpPayloadType, neteq_->LastError());
}
@@ -847,10 +846,10 @@ TEST_F(NetEqDecodingTest, UnknownPayloadType) {
TEST_F(NetEqDecodingTest, MAYBE_DecoderError) {
const size_t kPayloadBytes = 100;
uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateRtpInfo(0, 0, &rtp_info);
- rtp_info.header.payloadType = 103; // iSAC, but the payload is invalid.
- EXPECT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload, 0));
+ rtp_info.payloadType = 103; // iSAC, but the payload is invalid.
+ EXPECT_EQ(0, neteq_->InsertPacket(rtp_info, payload, 0));
// Set all of |out_data_| to 1, and verify that it was set to 0 by the call
// to GetAudio.
for (size_t i = 0; i < AudioFrame::kMaxDataSizeSamples; ++i) {
@@ -944,9 +943,9 @@ class NetEqBgnTest : public NetEqDecodingTest {
// Payload of 10 ms of PCM16 32 kHz.
uint8_t payload[kBlockSize32kHz * sizeof(int16_t)];
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateRtpInfo(0, 0, &rtp_info);
- rtp_info.header.payloadType = payload_type;
+ rtp_info.payloadType = payload_type;
uint32_t receive_timestamp = 0;
bool muted;
@@ -958,7 +957,7 @@ class NetEqBgnTest : public NetEqDecodingTest {
ASSERT_EQ(enc_len_bytes, expected_samples_per_channel * 2);
ASSERT_EQ(0, neteq_->InsertPacket(
- rtp_info.header,
+ rtp_info,
rtc::ArrayView<const uint8_t>(payload, enc_len_bytes),
receive_timestamp));
output.Reset();
@@ -968,8 +967,8 @@ class NetEqBgnTest : public NetEqDecodingTest {
ASSERT_EQ(AudioFrame::kNormalSpeech, output.speech_type_);
// Next packet.
- rtp_info.header.timestamp += expected_samples_per_channel;
- rtp_info.header.sequenceNumber++;
+ rtp_info.timestamp += expected_samples_per_channel;
+ rtp_info.sequenceNumber++;
receive_timestamp += expected_samples_per_channel;
}
@@ -1090,12 +1089,12 @@ void NetEqDecodingTest::WrapTest(uint16_t start_seq_no,
while (next_input_time_ms <= t_ms) {
// Insert one 30 ms speech frame.
uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateRtpInfo(seq_no, timestamp, &rtp_info);
if (drop_seq_numbers.find(seq_no) == drop_seq_numbers.end()) {
// This sequence number was not in the set to drop. Insert it.
- ASSERT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload,
- receive_timestamp));
+ ASSERT_EQ(0,
+ neteq_->InsertPacket(rtp_info, payload, receive_timestamp));
++packets_inserted;
}
NetEqNetworkStatistics network_stats;
@@ -1179,11 +1178,11 @@ void NetEqDecodingTest::DuplicateCng() {
// Insert three speech packets. Three are needed to get the frame length
// correct.
uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
bool muted;
for (int i = 0; i < 3; ++i) {
PopulateRtpInfo(seq_no, timestamp, &rtp_info);
- ASSERT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload, 0));
+ ASSERT_EQ(0, neteq_->InsertPacket(rtp_info, payload, 0));
++seq_no;
timestamp += kSamples;
@@ -1200,9 +1199,9 @@ void NetEqDecodingTest::DuplicateCng() {
size_t payload_len;
PopulateCng(seq_no, timestamp, &rtp_info, payload, &payload_len);
// This is the first time this CNG packet is inserted.
- ASSERT_EQ(0, neteq_->InsertPacket(
- rtp_info.header,
- rtc::ArrayView<const uint8_t>(payload, payload_len), 0));
+ ASSERT_EQ(
+ 0, neteq_->InsertPacket(
+ rtp_info, rtc::ArrayView<const uint8_t>(payload, payload_len), 0));
// Pull audio once and make sure CNG is played.
ASSERT_EQ(0, neteq_->GetAudio(&out_frame_, &muted));
@@ -1214,9 +1213,9 @@ void NetEqDecodingTest::DuplicateCng() {
// Insert the same CNG packet again. Note that at this point it is old, since
// we have already decoded the first copy of it.
- ASSERT_EQ(0, neteq_->InsertPacket(
- rtp_info.header,
- rtc::ArrayView<const uint8_t>(payload, payload_len), 0));
+ ASSERT_EQ(
+ 0, neteq_->InsertPacket(
+ rtp_info, rtc::ArrayView<const uint8_t>(payload, payload_len), 0));
// Pull audio until we have played |kCngPeriodMs| of CNG. Start at 10 ms since
// we have already pulled out CNG once.
@@ -1233,7 +1232,7 @@ void NetEqDecodingTest::DuplicateCng() {
++seq_no;
timestamp += kCngPeriodSamples;
PopulateRtpInfo(seq_no, timestamp, &rtp_info);
- ASSERT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload, 0));
+ ASSERT_EQ(0, neteq_->InsertPacket(rtp_info, payload, 0));
// Pull audio once and verify that the output is speech again.
ASSERT_EQ(0, neteq_->GetAudio(&out_frame_, &muted));
@@ -1263,13 +1262,13 @@ TEST_F(NetEqDecodingTest, CngFirst) {
size_t payload_len;
uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateCng(seq_no, timestamp, &rtp_info, payload, &payload_len);
- ASSERT_EQ(NetEq::kOK,
- neteq_->InsertPacket(
- rtp_info.header,
- rtc::ArrayView<const uint8_t>(payload, payload_len), 0));
+ ASSERT_EQ(
+ NetEq::kOK,
+ neteq_->InsertPacket(
+ rtp_info, rtc::ArrayView<const uint8_t>(payload, payload_len), 0));
++seq_no;
timestamp += kCngPeriodSamples;
@@ -1285,7 +1284,7 @@ TEST_F(NetEqDecodingTest, CngFirst) {
do {
ASSERT_LT(timeout_counter++, 20) << "Test timed out";
PopulateRtpInfo(seq_no, timestamp, &rtp_info);
- ASSERT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload, 0));
+ ASSERT_EQ(0, neteq_->InsertPacket(rtp_info, payload, 0));
++seq_no;
timestamp += kSamples;
@@ -1309,20 +1308,20 @@ class NetEqDecodingTestWithMutedState : public NetEqDecodingTest {
void InsertPacket(uint32_t rtp_timestamp) {
uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateRtpInfo(0, rtp_timestamp, &rtp_info);
- EXPECT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload, 0));
+ EXPECT_EQ(0, neteq_->InsertPacket(rtp_info, payload, 0));
}
void InsertCngPacket(uint32_t rtp_timestamp) {
uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
size_t payload_len;
PopulateCng(0, rtp_timestamp, &rtp_info, payload, &payload_len);
- EXPECT_EQ(NetEq::kOK,
- neteq_->InsertPacket(
- rtp_info.header,
- rtc::ArrayView<const uint8_t>(payload, payload_len), 0));
+ EXPECT_EQ(
+ NetEq::kOK,
+ neteq_->InsertPacket(
+ rtp_info, rtc::ArrayView<const uint8_t>(payload, payload_len), 0));
}
bool GetAudioReturnMuted() {
@@ -1545,10 +1544,10 @@ TEST_F(NetEqDecodingTestTwoInstances, CompareMutedStateOnOff) {
const size_t kSamples = 10 * 16;
const size_t kPayloadBytes = kSamples * 2;
uint8_t payload[kPayloadBytes] = {0};
- WebRtcRTPHeader rtp_info;
+ RTPHeader rtp_info;
PopulateRtpInfo(0, 0, &rtp_info);
- EXPECT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload, 0));
- EXPECT_EQ(0, neteq2_->InsertPacket(rtp_info.header, payload, 0));
+ EXPECT_EQ(0, neteq_->InsertPacket(rtp_info, payload, 0));
+ EXPECT_EQ(0, neteq2_->InsertPacket(rtp_info, payload, 0));
AudioFrame out_frame1, out_frame2;
bool muted;
@@ -1570,8 +1569,8 @@ TEST_F(NetEqDecodingTestTwoInstances, CompareMutedStateOnOff) {
// Insert new data. Timestamp is corrected for the time elapsed since the last
// packet.
PopulateRtpInfo(0, kSamples * 1000, &rtp_info);
- EXPECT_EQ(0, neteq_->InsertPacket(rtp_info.header, payload, 0));
- EXPECT_EQ(0, neteq2_->InsertPacket(rtp_info.header, payload, 0));
+ EXPECT_EQ(0, neteq_->InsertPacket(rtp_info, payload, 0));
+ EXPECT_EQ(0, neteq2_->InsertPacket(rtp_info, payload, 0));
int counter = 0;
while (out_frame1.speech_type_ != AudioFrame::kNormalSpeech) {

Powered by Google App Engine
This is Rietveld 408576698