| Index: webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
|
| index 305ea132e27b9a37e452f46b3167d5c5a715604f..6d30263fe7879bd5cee6cf79ba58fc9a2844a779 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
|
| @@ -107,8 +107,8 @@ class MockRtpPacketSender : public RtpPacketSender {
|
| MockRtpPacketSender() {}
|
| virtual ~MockRtpPacketSender() {}
|
|
|
| - MOCK_METHOD6(SendPacket,
|
| - bool(Priority priority,
|
| + MOCK_METHOD6(InsertPacket,
|
| + void(Priority priority,
|
| uint32_t ssrc,
|
| uint16_t sequence_number,
|
| int64_t capture_time_ms,
|
| @@ -125,14 +125,17 @@ class RtpSenderTest : public ::testing::Test {
|
| payload_(kPayload),
|
| transport_(),
|
| kMarkerBit(true) {
|
| - EXPECT_CALL(mock_paced_sender_,
|
| - SendPacket(_, _, _, _, _, _)).WillRepeatedly(testing::Return(true));
|
| + EXPECT_CALL(mock_paced_sender_, InsertPacket(_, _, _, _, _, _))
|
| + .WillRepeatedly(testing::Return());
|
| }
|
|
|
| - void SetUp() override {
|
| + void SetUp() override { SetUpRtpSender(true); }
|
| +
|
| + void SetUpRtpSender(bool pacer) {
|
| rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
|
| - &mock_paced_sender_, nullptr, nullptr,
|
| - nullptr, nullptr, nullptr));
|
| + pacer ? &mock_paced_sender_ : nullptr,
|
| + nullptr, nullptr, nullptr, nullptr,
|
| + nullptr));
|
| rtp_sender_->SetSequenceNumber(kSeqNum);
|
| }
|
|
|
| @@ -174,10 +177,18 @@ class RtpSenderTest : public ::testing::Test {
|
| }
|
| };
|
|
|
| +// TODO(pbos): Move tests over from WithoutPacer to RtpSenderTest as this is our
|
| +// default code path.
|
| +class RtpSenderTestWithoutPacer : public RtpSenderTest {
|
| + public:
|
| + void SetUp() override { SetUpRtpSender(false); }
|
| +};
|
| +
|
| class RtpSenderVideoTest : public RtpSenderTest {
|
| protected:
|
| virtual void SetUp() override {
|
| - RtpSenderTest::SetUp();
|
| + // TODO(pbos): Set up to use pacer.
|
| + SetUpRtpSender(false);
|
| rtp_sender_video_.reset(
|
| new RTPSenderVideo(&fake_clock_, rtp_sender_.get()));
|
| }
|
| @@ -213,7 +224,8 @@ class RtpSenderVideoTest : public RtpSenderTest {
|
| }
|
| };
|
|
|
| -TEST_F(RtpSenderTest, RegisterRtpTransmissionTimeOffsetHeaderExtension) {
|
| +TEST_F(RtpSenderTestWithoutPacer,
|
| + RegisterRtpTransmissionTimeOffsetHeaderExtension) {
|
| EXPECT_EQ(0u, rtp_sender_->RtpHeaderExtensionTotalLength());
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId));
|
| @@ -224,7 +236,7 @@ TEST_F(RtpSenderTest, RegisterRtpTransmissionTimeOffsetHeaderExtension) {
|
| EXPECT_EQ(0u, rtp_sender_->RtpHeaderExtensionTotalLength());
|
| }
|
|
|
| -TEST_F(RtpSenderTest, RegisterRtpAbsoluteSendTimeHeaderExtension) {
|
| +TEST_F(RtpSenderTestWithoutPacer, RegisterRtpAbsoluteSendTimeHeaderExtension) {
|
| EXPECT_EQ(0u, rtp_sender_->RtpHeaderExtensionTotalLength());
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId));
|
| @@ -236,7 +248,7 @@ TEST_F(RtpSenderTest, RegisterRtpAbsoluteSendTimeHeaderExtension) {
|
| EXPECT_EQ(0u, rtp_sender_->RtpHeaderExtensionTotalLength());
|
| }
|
|
|
| -TEST_F(RtpSenderTest, RegisterRtpAudioLevelHeaderExtension) {
|
| +TEST_F(RtpSenderTestWithoutPacer, RegisterRtpAudioLevelHeaderExtension) {
|
| EXPECT_EQ(0u, rtp_sender_->RtpHeaderExtensionTotalLength());
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| kRtpExtensionAudioLevel, kAudioLevelExtensionId));
|
| @@ -248,7 +260,7 @@ TEST_F(RtpSenderTest, RegisterRtpAudioLevelHeaderExtension) {
|
| EXPECT_EQ(0u, rtp_sender_->RtpHeaderExtensionTotalLength());
|
| }
|
|
|
| -TEST_F(RtpSenderTest, RegisterRtpHeaderExtensions) {
|
| +TEST_F(RtpSenderTestWithoutPacer, RegisterRtpHeaderExtensions) {
|
| EXPECT_EQ(0u, rtp_sender_->RtpHeaderExtensionTotalLength());
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId));
|
| @@ -298,7 +310,7 @@ TEST_F(RtpSenderTest, RegisterRtpHeaderExtensions) {
|
| EXPECT_EQ(0u, rtp_sender_->RtpHeaderExtensionTotalLength());
|
| }
|
|
|
| -TEST_F(RtpSenderTest, RegisterRtpVideoRotationHeaderExtension) {
|
| +TEST_F(RtpSenderTestWithoutPacer, RegisterRtpVideoRotationHeaderExtension) {
|
| EXPECT_EQ(0u, rtp_sender_->RtpHeaderExtensionTotalLength());
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| kRtpExtensionVideoRotation, kVideoRotationExtensionId));
|
| @@ -313,7 +325,7 @@ TEST_F(RtpSenderTest, RegisterRtpVideoRotationHeaderExtension) {
|
| EXPECT_EQ(0u, rtp_sender_->RtpHeaderExtensionTotalLength());
|
| }
|
|
|
| -TEST_F(RtpSenderTest, BuildRTPPacket) {
|
| +TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacket) {
|
| size_t length = static_cast<size_t>(rtp_sender_->BuildRTPheader(
|
| packet_, kPayload, kMarkerBit, kTimestamp, 0));
|
| ASSERT_EQ(kRtpHeaderSize, length);
|
| @@ -338,7 +350,8 @@ TEST_F(RtpSenderTest, BuildRTPPacket) {
|
| EXPECT_EQ(0u, rtp_header.extension.videoRotation);
|
| }
|
|
|
| -TEST_F(RtpSenderTest, BuildRTPPacketWithTransmissionOffsetExtension) {
|
| +TEST_F(RtpSenderTestWithoutPacer,
|
| + BuildRTPPacketWithTransmissionOffsetExtension) {
|
| EXPECT_EQ(0, rtp_sender_->SetTransmissionTimeOffset(kTimeOffset));
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| kRtpExtensionTransmissionTimeOffset, kTransmissionTimeOffsetExtensionId));
|
| @@ -375,7 +388,8 @@ TEST_F(RtpSenderTest, BuildRTPPacketWithTransmissionOffsetExtension) {
|
| EXPECT_EQ(0, rtp_header2.extension.transmissionTimeOffset);
|
| }
|
|
|
| -TEST_F(RtpSenderTest, BuildRTPPacketWithNegativeTransmissionOffsetExtension) {
|
| +TEST_F(RtpSenderTestWithoutPacer,
|
| + BuildRTPPacketWithNegativeTransmissionOffsetExtension) {
|
| const int kNegTimeOffset = -500;
|
| EXPECT_EQ(0, rtp_sender_->SetTransmissionTimeOffset(kNegTimeOffset));
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| @@ -403,7 +417,7 @@ TEST_F(RtpSenderTest, BuildRTPPacketWithNegativeTransmissionOffsetExtension) {
|
| EXPECT_EQ(kNegTimeOffset, rtp_header.extension.transmissionTimeOffset);
|
| }
|
|
|
| -TEST_F(RtpSenderTest, BuildRTPPacketWithAbsoluteSendTimeExtension) {
|
| +TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithAbsoluteSendTimeExtension) {
|
| EXPECT_EQ(0, rtp_sender_->SetAbsoluteSendTime(kAbsoluteSendTime));
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| kRtpExtensionAbsoluteSendTime, kAbsoluteSendTimeExtensionId));
|
| @@ -440,7 +454,7 @@ TEST_F(RtpSenderTest, BuildRTPPacketWithAbsoluteSendTimeExtension) {
|
| }
|
|
|
| // Test CVO header extension is only set when marker bit is true.
|
| -TEST_F(RtpSenderTest, BuildRTPPacketWithVideoRotation_MarkerBit) {
|
| +TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithVideoRotation_MarkerBit) {
|
| rtp_sender_->SetVideoRotation(kRotation);
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| kRtpExtensionVideoRotation, kVideoRotationExtensionId));
|
| @@ -468,7 +482,8 @@ TEST_F(RtpSenderTest, BuildRTPPacketWithVideoRotation_MarkerBit) {
|
| }
|
|
|
| // Test CVO header extension is not set when marker bit is false.
|
| -TEST_F(RtpSenderTest, DISABLED_BuildRTPPacketWithVideoRotation_NoMarkerBit) {
|
| +TEST_F(RtpSenderTestWithoutPacer,
|
| + DISABLED_BuildRTPPacketWithVideoRotation_NoMarkerBit) {
|
| rtp_sender_->SetVideoRotation(kRotation);
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| kRtpExtensionVideoRotation, kVideoRotationExtensionId));
|
| @@ -492,7 +507,7 @@ TEST_F(RtpSenderTest, DISABLED_BuildRTPPacketWithVideoRotation_NoMarkerBit) {
|
| EXPECT_FALSE(rtp_header.extension.hasVideoRotation);
|
| }
|
|
|
| -TEST_F(RtpSenderTest, BuildRTPPacketWithAudioLevelExtension) {
|
| +TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithAudioLevelExtension) {
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| kRtpExtensionAudioLevel, kAudioLevelExtensionId));
|
|
|
| @@ -533,7 +548,7 @@ TEST_F(RtpSenderTest, BuildRTPPacketWithAudioLevelExtension) {
|
| EXPECT_EQ(0u, rtp_header2.extension.audioLevel);
|
| }
|
|
|
| -TEST_F(RtpSenderTest, BuildRTPPacketWithHeaderExtensions) {
|
| +TEST_F(RtpSenderTestWithoutPacer, BuildRTPPacketWithHeaderExtensions) {
|
| EXPECT_EQ(0, rtp_sender_->SetTransmissionTimeOffset(kTimeOffset));
|
| EXPECT_EQ(0, rtp_sender_->SetAbsoluteSendTime(kAbsoluteSendTime));
|
| EXPECT_EQ(0,
|
| @@ -605,9 +620,9 @@ TEST_F(RtpSenderTest, BuildRTPPacketWithHeaderExtensions) {
|
| }
|
|
|
| TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) {
|
| - EXPECT_CALL(mock_paced_sender_,
|
| - SendPacket(RtpPacketSender::kNormalPriority, _, kSeqNum, _, _, _))
|
| - .WillOnce(testing::Return(false));
|
| + EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority,
|
| + _, kSeqNum, _, _, _))
|
| + .WillRepeatedly(testing::Return());
|
|
|
| rtp_sender_->SetStorePacketsStatus(true, 10);
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| @@ -655,9 +670,9 @@ TEST_F(RtpSenderTest, TrafficSmoothingWithExtensions) {
|
| }
|
|
|
| TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) {
|
| - EXPECT_CALL(mock_paced_sender_,
|
| - SendPacket(RtpPacketSender::kNormalPriority, _, kSeqNum, _, _, _))
|
| - .WillOnce(testing::Return(false));
|
| + EXPECT_CALL(mock_paced_sender_, InsertPacket(RtpPacketSender::kNormalPriority,
|
| + _, kSeqNum, _, _, _))
|
| + .WillRepeatedly(testing::Return());
|
|
|
| rtp_sender_->SetStorePacketsStatus(true, 10);
|
| EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
|
| @@ -679,8 +694,8 @@ TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) {
|
| EXPECT_EQ(0, transport_.packets_sent_);
|
|
|
| EXPECT_CALL(mock_paced_sender_,
|
| - SendPacket(RtpPacketSender::kHighPriority, _, kSeqNum, _, _, _))
|
| - .WillOnce(testing::Return(false));
|
| + InsertPacket(RtpPacketSender::kHighPriority, _, kSeqNum, _, _, _))
|
| + .WillRepeatedly(testing::Return());
|
|
|
| const int kStoredTimeInMs = 100;
|
| fake_clock_.AdvanceTimeMilliseconds(kStoredTimeInMs);
|
| @@ -717,8 +732,8 @@ TEST_F(RtpSenderTest, TrafficSmoothingRetransmits) {
|
| TEST_F(RtpSenderTest, SendPadding) {
|
| // Make all (non-padding) packets go to send queue.
|
| EXPECT_CALL(mock_paced_sender_,
|
| - SendPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _))
|
| - .WillRepeatedly(testing::Return(false));
|
| + InsertPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _))
|
| + .WillRepeatedly(testing::Return());
|
|
|
| uint16_t seq_num = kSeqNum;
|
| uint32_t timestamp = kTimestamp;
|
| @@ -837,8 +852,8 @@ TEST_F(RtpSenderTest, SendRedundantPayloads) {
|
| rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload);
|
| // Make all packets go through the pacer.
|
| EXPECT_CALL(mock_paced_sender_,
|
| - SendPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _))
|
| - .WillRepeatedly(testing::Return(false));
|
| + InsertPacket(RtpPacketSender::kNormalPriority, _, _, _, _, _))
|
| + .WillRepeatedly(testing::Return());
|
|
|
| uint16_t seq_num = kSeqNum;
|
| rtp_sender_->SetStorePacketsStatus(true, 10);
|
| @@ -891,7 +906,7 @@ TEST_F(RtpSenderTest, SendRedundantPayloads) {
|
| rtp_sender_->TimeToSendPadding(999));
|
| }
|
|
|
| -TEST_F(RtpSenderTest, SendGenericVideo) {
|
| +TEST_F(RtpSenderTestWithoutPacer, SendGenericVideo) {
|
| char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC";
|
| const uint8_t payload_type = 127;
|
| ASSERT_EQ(0, rtp_sender_->RegisterPayload(payload_name, payload_type, 90000,
|
| @@ -1017,8 +1032,8 @@ TEST_F(RtpSenderTest, BitrateCallbacks) {
|
| BitrateStatistics retransmit_stats_;
|
| } callback;
|
| rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
|
| - &mock_paced_sender_, nullptr, nullptr,
|
| - &callback, nullptr, nullptr));
|
| + nullptr, nullptr, nullptr, &callback, nullptr,
|
| + nullptr));
|
|
|
| // Simulate kNumPackets sent with kPacketInterval ms intervals.
|
| const uint32_t kNumPackets = 15;
|
| @@ -1076,13 +1091,13 @@ class RtpSenderAudioTest : public RtpSenderTest {
|
| void SetUp() override {
|
| payload_ = kAudioPayload;
|
| rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr,
|
| - &mock_paced_sender_, nullptr, nullptr,
|
| - nullptr, nullptr, nullptr));
|
| + nullptr, nullptr, nullptr, nullptr, nullptr,
|
| + nullptr));
|
| rtp_sender_->SetSequenceNumber(kSeqNum);
|
| }
|
| };
|
|
|
| -TEST_F(RtpSenderTest, StreamDataCountersCallbacks) {
|
| +TEST_F(RtpSenderTestWithoutPacer, StreamDataCountersCallbacks) {
|
| class TestCallback : public StreamDataCountersCallback {
|
| public:
|
| TestCallback()
|
| @@ -1298,7 +1313,7 @@ TEST_F(RtpSenderAudioTest, CheckMarkerBitForTelephoneEvents) {
|
| EXPECT_FALSE(rtp_header.markerBit);
|
| }
|
|
|
| -TEST_F(RtpSenderTest, BytesReportedCorrectly) {
|
| +TEST_F(RtpSenderTestWithoutPacer, BytesReportedCorrectly) {
|
| const char* kPayloadName = "GENERIC";
|
| const uint8_t kPayloadType = 127;
|
| rtp_sender_->SetSSRC(1234);
|
| @@ -1351,7 +1366,7 @@ TEST_F(RtpSenderTest, BytesReportedCorrectly) {
|
| rtx_stats.transmitted.TotalBytes());
|
| }
|
|
|
| -TEST_F(RtpSenderTest, RespectsNackBitrateLimit) {
|
| +TEST_F(RtpSenderTestWithoutPacer, RespectsNackBitrateLimit) {
|
| const int32_t kPacketSize = 1400;
|
| const int32_t kNumPackets = 30;
|
|
|
|
|