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

Unified Diff: webrtc/modules/congestion_controller/probe_controller.cc

Issue 2458863002: Start probes only after network is connected. (Closed)
Patch Set: . Created 4 years, 2 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
Index: webrtc/modules/congestion_controller/probe_controller.cc
diff --git a/webrtc/modules/congestion_controller/probe_controller.cc b/webrtc/modules/congestion_controller/probe_controller.cc
index e7bf1fc9b3501d79c3c0c866556d3f366699b7d2..c539f96370553b2f7995a37602cdc196d277fd9c 100644
--- a/webrtc/modules/congestion_controller/probe_controller.cc
+++ b/webrtc/modules/congestion_controller/probe_controller.cc
@@ -14,6 +14,7 @@
#include <initializer_list>
#include "webrtc/base/logging.h"
+#include "webrtc/base/networkroute.h"
#include "webrtc/system_wrappers/include/metrics.h"
namespace webrtc {
@@ -49,19 +50,17 @@ ProbeController::ProbeController(PacedSender* pacer, Clock* clock)
min_bitrate_to_probe_further_bps_(kExponentialProbingDisabled),
time_last_probing_initiated_ms_(0),
estimated_bitrate_bps_(0),
+ start_bitrate_bps_(0),
max_bitrate_bps_(0),
last_alr_probing_time_(clock_->TimeInMilliseconds()) {}
-void ProbeController::SetBitrates(int min_bitrate_bps,
- int start_bitrate_bps,
+void ProbeController::SetBitrates(int start_bitrate_bps,
+ int min_bitrate_bps,
int max_bitrate_bps) {
rtc::CritScope cs(&critsect_);
- if (state_ == State::kInit) {
- // When probing at 1.8 Mbps ( 6x 300), this represents a threshold of
- // 1.2 Mbps to continue probing.
- InitiateProbing({3 * start_bitrate_bps, 6 * start_bitrate_bps},
- 4 * start_bitrate_bps);
- }
+
+ start_bitrate_bps_ =
+ start_bitrate_bps > 0 ? start_bitrate_bps : min_bitrate_bps;
// Only do probing if:
// we are mid-call, which we consider to be if
@@ -69,7 +68,7 @@ void ProbeController::SetBitrates(int min_bitrate_bps,
// |estimated_bitrate_bps_| is valid (> 0) and
// the current bitrate is lower than the new |max_bitrate_bps|, and
// we actually want to increase the |max_bitrate_bps_|.
- if (state_ != State::kWaitingForProbingResult &&
+ if (state_ == State::kProbingComplete &&
stefan-webrtc 2016/10/31 10:58:27 Could you comment on this change?
Sergey Ulanov 2016/10/31 18:07:27 We don't want to start probing here when the netwo
stefan-webrtc 2016/11/02 13:27:17 Acknowledged.
estimated_bitrate_bps_ != 0 && estimated_bitrate_bps_ < max_bitrate_bps &&
philipel 2016/11/02 16:15:03 In order for probing to start before we have a net
Sergey Ulanov 2016/11/02 21:12:43 Previously probing was started by InitiateProbing(
philipel 2016/11/08 09:48:18 Ah, right :)
max_bitrate_bps > max_bitrate_bps_) {
InitiateProbing({max_bitrate_bps}, kExponentialProbingDisabled);
@@ -77,6 +76,16 @@ void ProbeController::SetBitrates(int min_bitrate_bps,
max_bitrate_bps_ = max_bitrate_bps;
}
+void ProbeController::OnNetworkRouteChanged(const rtc::NetworkRoute& route) {
+ rtc::CritScope cs(&critsect_);
+ if (route.connected && state_ == State::kInit) {
philipel 2016/11/02 16:15:03 I think if we add a bool, something like |is_midca
Sergey Ulanov 2016/11/02 21:12:43 I'd like to work on mid-call probing later, in a s
philipel 2016/11/08 09:48:18 Acknowledged.
+ // When probing at 1.8 Mbps ( 6x 300), this represents a threshold of
+ // 1.2 Mbps to continue probing.
+ InitiateProbing({3 * start_bitrate_bps_, 6 * start_bitrate_bps_},
+ 4 * start_bitrate_bps_);
+ }
+}
+
void ProbeController::SetEstimatedBitrate(int bitrate_bps) {
rtc::CritScope cs(&critsect_);
if (state_ == State::kWaitingForProbingResult) {
« webrtc/call/call.cc ('K') | « webrtc/modules/congestion_controller/probe_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698