Reland "Wire up send-side bandwidth estimation."
Revert was patchset #8 id:140001 of https://codereview.webrtc.org/1338203003/ The culprit was RTC_DCHECK(poller_thread_->Start()); in rampup_test.cc BUG=webrtc:4173 R=stefan@webrtc.org Review URL: https://codereview.webrtc.org/1362303002 . Cr-Commit-Position: refs/heads/master@{#10052}
This commit is contained in:
@ -33,9 +33,7 @@ namespace { // Anonymous namespace; hide utility functions and classes.
|
||||
class TestTransport : public Transport,
|
||||
public NullRtpData {
|
||||
public:
|
||||
explicit TestTransport()
|
||||
: rtcp_receiver_(NULL) {
|
||||
}
|
||||
explicit TestTransport() : rtcp_receiver_(nullptr) {}
|
||||
void SetRTCPReceiver(RTCPReceiver* rtcp_receiver) {
|
||||
rtcp_receiver_ = rtcp_receiver;
|
||||
}
|
||||
@ -78,8 +76,8 @@ class RtcpReceiverTest : public ::testing::Test {
|
||||
configuration.outgoing_transport = test_transport_;
|
||||
configuration.remote_bitrate_estimator = remote_bitrate_estimator_.get();
|
||||
rtp_rtcp_impl_ = new ModuleRtpRtcpImpl(configuration);
|
||||
rtcp_receiver_ = new RTCPReceiver(&system_clock_, false, NULL, NULL, NULL,
|
||||
rtp_rtcp_impl_);
|
||||
rtcp_receiver_ = new RTCPReceiver(&system_clock_, false, nullptr, nullptr,
|
||||
nullptr, nullptr, rtp_rtcp_impl_);
|
||||
test_transport_->SetRTCPReceiver(rtcp_receiver_);
|
||||
}
|
||||
~RtcpReceiverTest() {
|
||||
@ -362,7 +360,8 @@ TEST_F(RtcpReceiverTest, GetRtt) {
|
||||
rtcp_receiver_->SetSsrcs(kSourceSsrc, ssrcs);
|
||||
|
||||
// No report block received.
|
||||
EXPECT_EQ(-1, rtcp_receiver_->RTT(kSenderSsrc, NULL, NULL, NULL, NULL));
|
||||
EXPECT_EQ(
|
||||
-1, rtcp_receiver_->RTT(kSenderSsrc, nullptr, nullptr, nullptr, nullptr));
|
||||
|
||||
rtcp::ReportBlock rb;
|
||||
rb.To(kSourceSsrc);
|
||||
@ -374,10 +373,12 @@ TEST_F(RtcpReceiverTest, GetRtt) {
|
||||
EXPECT_EQ(kSenderSsrc, rtcp_packet_info_.remoteSSRC);
|
||||
EXPECT_EQ(kRtcpRr, rtcp_packet_info_.rtcpPacketTypeFlags);
|
||||
EXPECT_EQ(1u, rtcp_packet_info_.report_blocks.size());
|
||||
EXPECT_EQ(0, rtcp_receiver_->RTT(kSenderSsrc, NULL, NULL, NULL, NULL));
|
||||
EXPECT_EQ(
|
||||
0, rtcp_receiver_->RTT(kSenderSsrc, nullptr, nullptr, nullptr, nullptr));
|
||||
|
||||
// Report block not received.
|
||||
EXPECT_EQ(-1, rtcp_receiver_->RTT(kSenderSsrc + 1, NULL, NULL, NULL, NULL));
|
||||
EXPECT_EQ(-1, rtcp_receiver_->RTT(kSenderSsrc + 1, nullptr, nullptr, nullptr,
|
||||
nullptr));
|
||||
}
|
||||
|
||||
TEST_F(RtcpReceiverTest, InjectIjWithNoItem) {
|
||||
@ -589,7 +590,7 @@ TEST_F(RtcpReceiverTest, InjectXrVoipPacket) {
|
||||
xr.WithVoipMetric(&voip_metric);
|
||||
rtc::scoped_ptr<rtcp::RawPacket> packet(xr.Build());
|
||||
EXPECT_EQ(0, InjectRtcpPacket(packet->Buffer(), packet->Length()));
|
||||
ASSERT_TRUE(rtcp_packet_info_.VoIPMetric != NULL);
|
||||
ASSERT_TRUE(rtcp_packet_info_.VoIPMetric != nullptr);
|
||||
EXPECT_EQ(kLossRate, rtcp_packet_info_.VoIPMetric->lossRate);
|
||||
EXPECT_EQ(kRtcpXrVoipMetric, rtcp_packet_info_.rtcpPacketTypeFlags);
|
||||
}
|
||||
@ -843,7 +844,7 @@ TEST_F(RtcpReceiverTest, ReceiveReportTimeout) {
|
||||
|
||||
TEST_F(RtcpReceiverTest, TmmbrReceivedWithNoIncomingPacket) {
|
||||
// This call is expected to fail because no data has arrived.
|
||||
EXPECT_EQ(-1, rtcp_receiver_->TMMBRReceived(0, 0, NULL));
|
||||
EXPECT_EQ(-1, rtcp_receiver_->TMMBRReceived(0, 0, nullptr));
|
||||
}
|
||||
|
||||
TEST_F(RtcpReceiverTest, TmmbrPacketAccepted) {
|
||||
@ -864,7 +865,7 @@ TEST_F(RtcpReceiverTest, TmmbrPacketAccepted) {
|
||||
rtc::scoped_ptr<rtcp::RawPacket> packet(sr.Build());
|
||||
EXPECT_EQ(0, InjectRtcpPacket(packet->Buffer(), packet->Length()));
|
||||
|
||||
EXPECT_EQ(1, rtcp_receiver_->TMMBRReceived(0, 0, NULL));
|
||||
EXPECT_EQ(1, rtcp_receiver_->TMMBRReceived(0, 0, nullptr));
|
||||
TMMBRSet candidate_set;
|
||||
candidate_set.VerifyAndAllocateSet(1);
|
||||
EXPECT_EQ(1, rtcp_receiver_->TMMBRReceived(1, 0, &candidate_set));
|
||||
@ -890,7 +891,7 @@ TEST_F(RtcpReceiverTest, TmmbrPacketNotForUsIgnored) {
|
||||
ssrcs.insert(kMediaFlowSsrc);
|
||||
rtcp_receiver_->SetSsrcs(kMediaFlowSsrc, ssrcs);
|
||||
EXPECT_EQ(0, InjectRtcpPacket(packet->Buffer(), packet->Length()));
|
||||
EXPECT_EQ(0, rtcp_receiver_->TMMBRReceived(0, 0, NULL));
|
||||
EXPECT_EQ(0, rtcp_receiver_->TMMBRReceived(0, 0, nullptr));
|
||||
}
|
||||
|
||||
TEST_F(RtcpReceiverTest, TmmbrPacketZeroRateIgnored) {
|
||||
@ -911,7 +912,7 @@ TEST_F(RtcpReceiverTest, TmmbrPacketZeroRateIgnored) {
|
||||
rtc::scoped_ptr<rtcp::RawPacket> packet(sr.Build());
|
||||
|
||||
EXPECT_EQ(0, InjectRtcpPacket(packet->Buffer(), packet->Length()));
|
||||
EXPECT_EQ(0, rtcp_receiver_->TMMBRReceived(0, 0, NULL));
|
||||
EXPECT_EQ(0, rtcp_receiver_->TMMBRReceived(0, 0, nullptr));
|
||||
}
|
||||
|
||||
TEST_F(RtcpReceiverTest, TmmbrThreeConstraintsTimeOut) {
|
||||
@ -938,7 +939,7 @@ TEST_F(RtcpReceiverTest, TmmbrThreeConstraintsTimeOut) {
|
||||
system_clock_.AdvanceTimeMilliseconds(5000);
|
||||
}
|
||||
// It is now starttime + 15.
|
||||
EXPECT_EQ(3, rtcp_receiver_->TMMBRReceived(0, 0, NULL));
|
||||
EXPECT_EQ(3, rtcp_receiver_->TMMBRReceived(0, 0, nullptr));
|
||||
TMMBRSet candidate_set;
|
||||
candidate_set.VerifyAndAllocateSet(3);
|
||||
EXPECT_EQ(3, rtcp_receiver_->TMMBRReceived(3, 0, &candidate_set));
|
||||
@ -947,7 +948,7 @@ TEST_F(RtcpReceiverTest, TmmbrThreeConstraintsTimeOut) {
|
||||
// seconds, timing out the first packet.
|
||||
system_clock_.AdvanceTimeMilliseconds(12000);
|
||||
// Odd behaviour: Just counting them does not trigger the timeout.
|
||||
EXPECT_EQ(3, rtcp_receiver_->TMMBRReceived(0, 0, NULL));
|
||||
EXPECT_EQ(3, rtcp_receiver_->TMMBRReceived(0, 0, nullptr));
|
||||
EXPECT_EQ(2, rtcp_receiver_->TMMBRReceived(3, 0, &candidate_set));
|
||||
EXPECT_EQ(kSenderSsrc + 1, candidate_set.Ssrc(0));
|
||||
}
|
||||
@ -1008,7 +1009,7 @@ TEST_F(RtcpReceiverTest, Callbacks) {
|
||||
EXPECT_TRUE(callback.Matches(kSourceSsrc, kSequenceNumber, kFractionLoss,
|
||||
kCumulativeLoss, kJitter));
|
||||
|
||||
rtcp_receiver_->RegisterRtcpStatisticsCallback(NULL);
|
||||
rtcp_receiver_->RegisterRtcpStatisticsCallback(nullptr);
|
||||
|
||||
// Add arbitrary numbers, callback should not be called (retain old values).
|
||||
rtcp::ReportBlock rb2;
|
||||
|
||||
Reference in New Issue
Block a user