Removes old probe controller.

This removes the old version of Probe Controller. The new controller is
slightly different, therefore the legacy SendSideCongestionController is
changed to accommodate the new function.

Most notably, the functionality is changed so that probes are now sent
only from the OnProcess call and not immediately on changing a
parameter.

The lock previously owned and used by ProbeController is moved to SendSideCongestionController. This should not change any
behavior.

Bug: webrtc:8415
Change-Id: I3c69ddeb04aeeae1234a2a5e116fb677f36b4ae4
Reviewed-on: https://webrtc-review.googlesource.com/86541
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23973}
This commit is contained in:
Sebastian Jansson
2018-07-13 17:22:01 +02:00
committed by Commit Bot
parent e26ff4b581
commit b2ecc3dc49
9 changed files with 90 additions and 737 deletions

View File

@ -23,8 +23,6 @@ rtc_static_library("goog_cc") {
"goog_cc_network_control.cc",
"goog_cc_network_control.h",
"include/goog_cc_factory.h",
"probe_controller.cc",
"probe_controller.h",
]
if (!build_with_chromium && is_clang) {
@ -36,6 +34,7 @@ rtc_static_library("goog_cc") {
":alr_detector",
":delay_based_bwe",
":estimators",
":probe_controller",
"../..:module_api",
"../../..:webrtc_common",
"../../../:typedefs",
@ -146,6 +145,29 @@ rtc_source_set("delay_based_bwe") {
}
}
rtc_source_set("probe_controller") {
sources = [
"probe_controller.cc",
"probe_controller.h",
]
deps = [
"../../../api/transport:network_control",
"../../../logging:rtc_event_log_api",
"../../../logging:rtc_event_pacing",
"../../../rtc_base:checks",
"../../../rtc_base:rtc_base_approved",
"../../../system_wrappers:field_trial_api",
"../../../system_wrappers:metrics_api",
"//third_party/abseil-cpp/absl/types:optional",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
if (rtc_include_tests) {
rtc_source_set("test_goog_cc_printer") {
testonly = true
@ -177,6 +199,7 @@ if (rtc_include_tests) {
":delay_based_bwe",
":estimators",
":goog_cc",
":probe_controller",
"../../../api/transport:network_control",
"../../../api/transport:network_control_test",
"../../../rtc_base:checks",

View File

@ -19,7 +19,6 @@
#include "system_wrappers/include/metrics.h"
namespace webrtc {
namespace webrtc_cc {
namespace {
// The minimum number probing packets used.
@ -142,6 +141,7 @@ void ProbeController::OnMaxTotalAllocatedBitrate(
estimated_bitrate_bps_ != 0 &&
(max_bitrate_bps_ <= 0 || estimated_bitrate_bps_ < max_bitrate_bps_) &&
estimated_bitrate_bps_ < max_total_allocated_bitrate) {
max_total_allocated_bitrate_ = max_total_allocated_bitrate;
InitiateProbing(at_time_ms, {max_total_allocated_bitrate}, false);
}
}
@ -334,5 +334,4 @@ void ProbeController::InitiateProbing(
}
}
} // namespace webrtc_cc
} // namespace webrtc

View File

@ -24,8 +24,6 @@ namespace webrtc {
class Clock;
namespace webrtc_cc {
// This class controls initiation of probing to estimate initial channel
// capacity. There is also support for probing during a session when max
// bitrate is adjusted by an application.
@ -104,7 +102,6 @@ class ProbeController {
RTC_DISALLOW_COPY_AND_ASSIGN(ProbeController);
};
} // namespace webrtc_cc
} // namespace webrtc
#endif // MODULES_CONGESTION_CONTROLLER_GOOG_CC_PROBE_CONTROLLER_H_