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

Unified Diff: webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc

Issue 2495553002: Add overhead per packet observer to the rtp_sender. (Closed)
Patch Set: Respond to comments. Created 4 years, 1 month 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/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 d6796e788008971b6015f1e0a24759f4a3ea3dca..9e6e3e9722e78887327fe605fff3b5854f297844 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
@@ -149,7 +149,7 @@ class RtpSenderTest : public ::testing::Test {
false, &fake_clock_, &transport_, pacer ? &mock_paced_sender_ : nullptr,
nullptr, &seq_num_allocator_, nullptr, nullptr, nullptr, nullptr,
&mock_rtc_event_log_, &send_packet_observer_,
- &retransmission_rate_limiter_));
+ &retransmission_rate_limiter_, nullptr));
rtp_sender_->SetSequenceNumber(kSeqNum);
rtp_sender_->SetSendPayloadType(kPayload);
rtp_sender_->SetTimestampOffset(0);
@@ -442,7 +442,7 @@ TEST_F(RtpSenderTestWithoutPacer, SendsPacketsWithTransportSequenceNumber) {
rtp_sender_.reset(new RTPSender(
false, &fake_clock_, &transport_, nullptr, nullptr, &seq_num_allocator_,
&feedback_observer_, nullptr, nullptr, nullptr, &mock_rtc_event_log_,
- &send_packet_observer_, &retransmission_rate_limiter_));
+ &send_packet_observer_, &retransmission_rate_limiter_, nullptr));
EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
kRtpExtensionTransportSequenceNumber,
kTransportSequenceNumberExtensionId));
@@ -485,11 +485,11 @@ TEST_F(RtpSenderTestWithoutPacer, OnSendPacketUpdated) {
}
TEST_F(RtpSenderTest, SendsPacketsWithTransportSequenceNumber) {
- rtp_sender_.reset(
- new RTPSender(false, &fake_clock_, &transport_, &mock_paced_sender_,
- nullptr, &seq_num_allocator_, &feedback_observer_, nullptr,
- nullptr, nullptr, &mock_rtc_event_log_,
- &send_packet_observer_, &retransmission_rate_limiter_));
+ rtp_sender_.reset(new RTPSender(
+ false, &fake_clock_, &transport_, &mock_paced_sender_, nullptr,
+ &seq_num_allocator_, &feedback_observer_, nullptr, nullptr, nullptr,
+ &mock_rtc_event_log_, &send_packet_observer_,
+ &retransmission_rate_limiter_, nullptr));
rtp_sender_->SetStorePacketsStatus(true, 10);
EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
kRtpExtensionTransportSequenceNumber,
@@ -769,7 +769,8 @@ TEST_F(RtpSenderTest, OnSendPacketNotUpdatedWithoutSeqNumAllocator) {
rtp_sender_.reset(new RTPSender(
false, &fake_clock_, &transport_, &mock_paced_sender_, nullptr,
nullptr /* TransportSequenceNumberAllocator */, nullptr, nullptr, nullptr,
- nullptr, nullptr, &send_packet_observer_, &retransmission_rate_limiter_));
+ nullptr, nullptr, &send_packet_observer_, &retransmission_rate_limiter_,
+ nullptr));
EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
kRtpExtensionTransportSequenceNumber,
kTransportSequenceNumberExtensionId));
@@ -791,7 +792,7 @@ TEST_F(RtpSenderTest, SendRedundantPayloads) {
rtp_sender_.reset(new RTPSender(
false, &fake_clock_, &transport, &mock_paced_sender_, nullptr, nullptr,
nullptr, nullptr, nullptr, nullptr, &mock_rtc_event_log_, nullptr,
- &retransmission_rate_limiter_));
+ &retransmission_rate_limiter_, nullptr));
rtp_sender_->SetSequenceNumber(kSeqNum);
rtp_sender_->SetRtxPayloadType(kRtxPayload, kPayload);
@@ -909,11 +910,11 @@ TEST_F(RtpSenderTest, SendFlexfecPackets) {
kNoRtpExtensions, &fake_clock_);
// Reset |rtp_sender_| to use FlexFEC.
- rtp_sender_.reset(
- new RTPSender(false, &fake_clock_, &transport_, &mock_paced_sender_,
- &flexfec_sender, &seq_num_allocator_, nullptr, nullptr,
- nullptr, nullptr, &mock_rtc_event_log_,
- &send_packet_observer_, &retransmission_rate_limiter_));
+ rtp_sender_.reset(new RTPSender(
+ false, &fake_clock_, &transport_, &mock_paced_sender_, &flexfec_sender,
+ &seq_num_allocator_, nullptr, nullptr, nullptr, nullptr,
+ &mock_rtc_event_log_, &send_packet_observer_,
+ &retransmission_rate_limiter_, nullptr));
rtp_sender_->SetSSRC(kMediaSsrc);
rtp_sender_->SetSequenceNumber(kSeqNum);
rtp_sender_->SetSendPayloadType(kMediaPayloadType);
@@ -961,7 +962,7 @@ TEST_F(RtpSenderTestWithoutPacer, SendFlexfecPackets) {
&flexfec_sender, &seq_num_allocator_, nullptr,
nullptr, nullptr, nullptr,
&mock_rtc_event_log_, &send_packet_observer_,
- &retransmission_rate_limiter_));
+ &retransmission_rate_limiter_, nullptr));
rtp_sender_->SetSSRC(kMediaSsrc);
rtp_sender_->SetSequenceNumber(kSeqNum);
rtp_sender_->SetSendPayloadType(kMediaPayloadType);
@@ -1004,10 +1005,10 @@ TEST_F(RtpSenderTest, FrameCountCallbacks) {
FrameCounts frame_counts_;
} callback;
- rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_,
- &mock_paced_sender_, nullptr, nullptr,
- nullptr, nullptr, &callback, nullptr, nullptr,
- nullptr, &retransmission_rate_limiter_));
+ rtp_sender_.reset(
+ new RTPSender(false, &fake_clock_, &transport_, &mock_paced_sender_,
+ nullptr, nullptr, nullptr, nullptr, &callback, nullptr,
+ nullptr, nullptr, &retransmission_rate_limiter_, nullptr));
char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC";
const uint8_t payload_type = 127;
@@ -1069,7 +1070,7 @@ TEST_F(RtpSenderTest, BitrateCallbacks) {
rtp_sender_.reset(new RTPSender(false, &fake_clock_, &transport_, nullptr,
nullptr, nullptr, nullptr, &callback, nullptr,
nullptr, nullptr, nullptr,
- &retransmission_rate_limiter_));
+ &retransmission_rate_limiter_, nullptr));
// Simulate kNumPackets sent with kPacketInterval ms intervals, with the
// number of packets selected so that we fill (but don't overflow) the one
@@ -1127,7 +1128,7 @@ class RtpSenderAudioTest : public RtpSenderTest {
rtp_sender_.reset(new RTPSender(true, &fake_clock_, &transport_, nullptr,
nullptr, nullptr, nullptr, nullptr, nullptr,
nullptr, nullptr, nullptr,
- &retransmission_rate_limiter_));
+ &retransmission_rate_limiter_, nullptr));
rtp_sender_->SetSequenceNumber(kSeqNum);
}
};
@@ -1478,4 +1479,43 @@ TEST_F(RtpSenderVideoTest, SendVideoWithCameraAndFlipCVO) {
ConvertCVOByteToVideoRotation(flip_bit | camera_bit | 3));
}
+namespace {
+class MockOverheadSizeObserver : public OverheadSizeObserver {
+ public:
+ MOCK_METHOD1(OnOverheadSizeChanged, void(int overhead_bytes_per_packet));
+};
+} // namespace
+
+TEST_F(RtpSenderTest, OnOverheadSizeChanged) {
+ MockOverheadSizeObserver mock_overhead_size_observer;
+ EXPECT_CALL(seq_num_allocator_, AllocateSequenceNumber())
+ .WillRepeatedly(testing::Return(kTransportSequenceNumber));
+
+ rtp_sender_.reset(new RTPSender(
+ false, &fake_clock_, &transport_, nullptr, nullptr, &seq_num_allocator_,
+ nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
+ &retransmission_rate_limiter_, &mock_overhead_size_observer));
+
+ EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension(
+ kRtpExtensionTransportSequenceNumber,
+ kTransportSequenceNumberExtensionId));
+
+ // Transport overhead is set to 28B.
+ EXPECT_CALL(mock_overhead_size_observer, OnOverheadSizeChanged(28)).Times(1);
+ rtp_sender_->SetTransportOverhead(28);
+
+ // RTP Overhead with sequence number extension is 20B.
+ // 28B + 20B = 48B
+ EXPECT_CALL(mock_overhead_size_observer, OnOverheadSizeChanged(48)).Times(1);
+ SendGenericPayload();
+
+ rtp_sender_->RegisterRtpHeaderExtension(kRtpExtensionTransmissionTimeOffset,
+ kTransmissionTimeOffsetExtensionId);
+
+ // TransmissionTimeOffset extension has a size of 4B.
+ // 28B + 20B + 4B = 52B
+ EXPECT_CALL(mock_overhead_size_observer, OnOverheadSizeChanged(52)).Times(1);
+ SendGenericPayload();
+}
+
} // namespace webrtc
« webrtc/modules/rtp_rtcp/source/rtp_sender.cc ('K') | « webrtc/modules/rtp_rtcp/source/rtp_sender.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698