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

Unified Diff: webrtc/modules/pacing/paced_sender.cc

Issue 2719183004: Avoid busy looping in case of send failure when probing. (Closed)
Patch Set: Created 3 years, 10 months 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
« no previous file with comments | « webrtc/modules/pacing/paced_sender.h ('k') | webrtc/modules/pacing/paced_sender_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
« no previous file with comments | « webrtc/modules/pacing/paced_sender.h ('k') | webrtc/modules/pacing/paced_sender_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698