Index: webrtc/modules/pacing/paced_sender.cc |
diff --git a/webrtc/modules/pacing/paced_sender.cc b/webrtc/modules/pacing/paced_sender.cc |
index bb071f16561e6f4ddffcd4926e44c0e8feb5d42f..b954677204516d72c8ec6f2524d9df33780c18ee 100644 |
--- a/webrtc/modules/pacing/paced_sender.cc |
+++ b/webrtc/modules/pacing/paced_sender.cc |
@@ -261,8 +261,6 @@ PacedSender::PacedSender(Clock* clock, PacketSender* packet_sender) |
packets_(new paced_sender::PacketQueue(clock)), |
packet_counter_(0) { |
UpdateBytesPerInterval(kMinPacketLimitMs); |
- prober_->ProbeAtBitrate(900000, 6); |
- prober_->ProbeAtBitrate(1800000, 5); |
} |
PacedSender::~PacedSender() {} |
@@ -285,7 +283,7 @@ void PacedSender::SetProbingEnabled(bool enabled) { |
prober_->SetEnabled(enabled); |
} |
-void PacedSender::SetEstimatedBitrate(uint32_t bitrate_bps) { |
+void PacedSender::SetEstimatedBitrate(int bitrate_bps) { |
if (bitrate_bps == 0) |
LOG(LS_ERROR) << "PacedSender is not designed to handle 0 bitrate."; |
CriticalSectionScoped cs(critsect_.get()); |
@@ -295,6 +293,7 @@ void PacedSender::SetEstimatedBitrate(uint32_t bitrate_bps) { |
pacing_bitrate_kbps_ = |
std::max(min_send_bitrate_kbps_, estimated_bitrate_bps_ / 1000) * |
kDefaultPaceMultiplier; |
+ prober_->SetEstimatedBitrate(bitrate_bps); |
} |
void PacedSender::SetSendBitrateLimits(int min_send_bitrate_bps, |
@@ -320,7 +319,7 @@ void PacedSender::InsertPacket(RtpPacketSender::Priority priority, |
<< "SetEstimatedBitrate must be called before InsertPacket."; |
int64_t now_ms = clock_->TimeInMilliseconds(); |
- prober_->OnIncomingPacket(bytes); |
+ prober_->OnIncomingPacket(now_ms, bytes); |
if (capture_time_ms < 0) |
capture_time_ms = now_ms; |
@@ -332,7 +331,7 @@ void PacedSender::InsertPacket(RtpPacketSender::Priority priority, |
int64_t PacedSender::ExpectedQueueTimeMs() const { |
CriticalSectionScoped cs(critsect_.get()); |
- RTC_DCHECK_GT(pacing_bitrate_kbps_, 0u); |
+ RTC_DCHECK_GT(pacing_bitrate_kbps_, 0); |
return static_cast<int64_t>(packets_->SizeInBytes() * 8 / |
pacing_bitrate_kbps_); |
} |
@@ -370,6 +369,11 @@ int64_t PacedSender::TimeUntilNextProcess() { |
return std::max<int64_t>(kMinPacketLimitMs - elapsed_time_ms, 0); |
} |
+bool PacedSender::IsExpectingProbingResults() const { |
+ CriticalSectionScoped cs(critsect_.get()); |
+ return prober_->IsExpectingProbingResults(); |
+} |
+ |
void PacedSender::Process() { |
int64_t now_us = clock_->TimeInMicroseconds(); |
CriticalSectionScoped cs(critsect_.get()); |
@@ -455,7 +459,9 @@ bool PacedSender::SendPacket(const paced_sender::Packet& packet, |
critsect_->Enter(); |
if (success) { |
- prober_->PacketSent(clock_->TimeInMilliseconds(), packet.bytes); |
+ // Is this a probe ? |
+ if (probe_cluster_id != PacketInfo::kNotAProbe) |
+ prober_->PacketSent(clock_->TimeInMilliseconds(), packet.bytes); |
// TODO(holmer): High priority packets should only be accounted for if we |
// are allocating bandwidth for audio. |
if (packet.priority != kHighPriority) { |
@@ -475,7 +481,9 @@ void PacedSender::SendPadding(size_t padding_needed, int probe_cluster_id) { |
critsect_->Enter(); |
if (bytes_sent > 0) { |
- prober_->PacketSent(clock_->TimeInMilliseconds(), bytes_sent); |
+ // Is this a probe ? |
+ if (probe_cluster_id != PacketInfo::kNotAProbe) |
+ prober_->PacketSent(clock_->TimeInMilliseconds(), bytes_sent); |
media_budget_->UseBudget(bytes_sent); |
padding_budget_->UseBudget(bytes_sent); |
} |