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 929f5b2097d1e37db7d56d1ee0d73416eed446d0..25e214eae7152fbf84301642ea49dd27362df182 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc |
@@ -27,6 +27,7 @@ |
#include "webrtc/modules/rtp_rtcp/source/rtp_sender_video.h" |
#include "webrtc/modules/rtp_rtcp/source/rtp_utility.h" |
#include "webrtc/system_wrappers/include/stl_util.h" |
+#include "webrtc/test/field_trial.h" |
#include "webrtc/test/gmock.h" |
#include "webrtc/test/gtest.h" |
#include "webrtc/test/mock_transport.h" |
@@ -1530,4 +1531,49 @@ TEST_F(RtpSenderTest, DoesNotUpdateOverheadOnEqualSize) { |
SendGenericPayload(); |
} |
+TEST_F(RtpSenderTest, AddOverheadToTransportFeedbackObserver) { |
+ constexpr int kTransportOverheadBytesPerPacket = 28; |
+ constexpr int kRtpOverheadBytesPerPacket = 12 + 8; |
+ test::ScopedFieldTrials override_field_trials_( |
+ "WebRTC-SendSideBwe-WithOverhead/Enabled/"); |
+ MockOverheadObserver mock_overhead_observer; |
+ 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_, &mock_overhead_observer)); |
+ rtp_sender_->SetSequenceNumber(kSeqNum); |
+ rtp_sender_->SetSSRC(kSsrc); |
+ rtp_sender_->SetStorePacketsStatus(true, 10); |
+ EXPECT_CALL(mock_overhead_observer, |
+ OnOverheadChanged(kTransportOverheadBytesPerPacket)) |
+ .Times(1); |
+ rtp_sender_->SetTransportOverhead(kTransportOverheadBytesPerPacket); |
+ EXPECT_EQ(0, rtp_sender_->RegisterRtpHeaderExtension( |
+ kRtpExtensionTransportSequenceNumber, |
+ kTransportSequenceNumberExtensionId)); |
+ |
+ EXPECT_CALL(mock_paced_sender_, InsertPacket(_, kSsrc, kSeqNum, _, _, _)); |
+ EXPECT_CALL(seq_num_allocator_, AllocateSequenceNumber()) |
+ .WillOnce(testing::Return(kTransportSequenceNumber)); |
+ EXPECT_CALL(send_packet_observer_, |
+ OnSendPacket(kTransportSequenceNumber, _, _)) |
+ .Times(1); |
stefan-webrtc
2016/11/28 15:21:11
Seems like we can skip most of these EXPECT_CALLs,
michaelt
2016/11/29 08:22:52
There is still som preparation needed but i could
|
+ const int kProbeClusterId = 1; |
+ EXPECT_CALL(feedback_observer_, |
+ AddPacket(kTransportSequenceNumber, |
+ sizeof(kPayloadData) + kGenericHeaderLength + |
+ kRtpOverheadBytesPerPacket + |
+ kTransportOverheadBytesPerPacket, |
+ kProbeClusterId)) |
+ .Times(1); |
+ EXPECT_CALL(mock_overhead_observer, |
+ OnOverheadChanged(kTransportOverheadBytesPerPacket + |
+ kRtpOverheadBytesPerPacket)) |
+ .Times(1); |
+ SendGenericPayload(); |
+ rtp_sender_->TimeToSendPacket( |
+ kSsrc, kSeqNum, fake_clock_.TimeInMilliseconds(), false, kProbeClusterId); |
+} |
+ |
} // namespace webrtc |