Index: webrtc/modules/pacing/paced_sender.cc |
diff --git a/webrtc/modules/pacing/paced_sender.cc b/webrtc/modules/pacing/paced_sender.cc |
index 6a97d025abd702715b3b5becc412dd33937c4025..658e13a9d38b94e3007e41ddfb7c002abf8f5a70 100644 |
--- a/webrtc/modules/pacing/paced_sender.cc |
+++ b/webrtc/modules/pacing/paced_sender.cc |
@@ -255,6 +255,7 @@ PacedSender::PacedSender(Clock* clock, PacketSender* packet_sender) |
media_budget_(new paced_sender::IntervalBudget(0)), |
padding_budget_(new paced_sender::IntervalBudget(0)), |
prober_(new BitrateProber()), |
+ probing_send_failure_(false), |
estimated_bitrate_bps_(0), |
min_send_bitrate_kbps_(0u), |
max_padding_bitrate_kbps_(0u), |
@@ -374,7 +375,7 @@ int64_t PacedSender::TimeUntilNextProcess() { |
CriticalSectionScoped cs(critsect_.get()); |
if (prober_->IsProbing()) { |
int64_t ret = prober_->TimeUntilNextProbe(clock_->TimeInMilliseconds()); |
- if (ret >= 0) |
+ if (ret > 0 || (ret == 0 && !probing_send_failure_)) |
return ret; |
} |
int64_t elapsed_time_us = clock_->TimeInMicroseconds() - time_last_update_us_; |
@@ -448,8 +449,11 @@ void PacedSender::Process() { |
bytes_sent += SendPadding(padding_needed, pacing_info); |
} |
} |
- if (is_probing && bytes_sent > 0) |
- prober_->ProbeSent(clock_->TimeInMilliseconds(), bytes_sent); |
+ if (is_probing) { |
+ probing_send_failure_ = bytes_sent == 0; |
stefan-webrtc
2017/02/28 14:23:41
Why do we fail to send?
|
+ if (!probing_send_failure_) |
+ prober_->ProbeSent(clock_->TimeInMilliseconds(), bytes_sent); |
+ } |
alr_detector_->OnBytesSent(bytes_sent, now_us / 1000); |
} |