Disable toggling of controller in SSCC.

This disables toggling between transport feedback based  controller and
the fall back controller in SendSideCongestionController. The toggling
seems to cause issues with the probing in certain circumstances. Since
it's feasible to run experiments without the toggling, disable it for now.

Bug: webrtc:8415
Change-Id: Ia4a827e95d730d651eaf3facbee7e9a5b0cb2562
Reviewed-on: https://webrtc-review.googlesource.com/69803
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22856}
This commit is contained in:
Sebastian Jansson
2018-04-13 10:54:37 +02:00
committed by Commit Bot
parent c1161eb5e3
commit 7d3efacb61
2 changed files with 5 additions and 8 deletions

View File

@ -203,7 +203,6 @@ class SendSideCongestionController
bool network_available_ RTC_GUARDED_BY(task_queue_ptr_);
bool periodic_tasks_enabled_ RTC_GUARDED_BY(task_queue_ptr_);
bool packet_feedback_available_ RTC_GUARDED_BY(task_queue_ptr_);
bool feedback_only_controller_ RTC_GUARDED_BY(task_queue_ptr_);
send_side_cc_internal::PeriodicTask* pacer_queue_update_task_
RTC_GUARDED_BY(task_queue_ptr_);
send_side_cc_internal::PeriodicTask* controller_task_

View File

@ -53,8 +53,10 @@ bool IsPacerPushbackExperimentEnabled() {
std::unique_ptr<NetworkControllerFactoryInterface> MaybeCreateBbrFactory() {
if (CongestionControllerExperiment::BbrControllerEnabled()) {
RTC_LOG(LS_INFO) << "Creating BBR factory";
return rtc::MakeUnique<BbrNetworkControllerFactory>();
} else {
RTC_LOG(LS_INFO) << "Not creating BBR factory";
return nullptr;
}
}
@ -342,7 +344,6 @@ SendSideCongestionController::SendSideCongestionController(
network_available_(false),
periodic_tasks_enabled_(true),
packet_feedback_available_(false),
feedback_only_controller_(false),
pacer_queue_update_task_(nullptr),
controller_task_(nullptr),
task_queue_(MakeUnique<rtc::TaskQueue>("SendSideCCQueue")) {
@ -380,11 +381,9 @@ void SendSideCongestionController::MaybeRecreateControllers() {
Timestamp::ms(clock_->TimeInMilliseconds());
initial_config_.stream_based_config = streams_config_;
const bool feedback_only_controller =
packet_feedback_available_ && controller_factory_with_feedback_;
if (!controller_ || (feedback_only_controller != feedback_only_controller_)) {
if (feedback_only_controller) {
if (!controller_) {
// TODO(srte): Use fallback controller if no feedback is available.
if (controller_factory_with_feedback_) {
RTC_LOG(LS_INFO) << "Creating feedback based only controller";
controller_ = controller_factory_with_feedback_->Create(initial_config_);
process_interval_ =
@ -394,7 +393,6 @@ void SendSideCongestionController::MaybeRecreateControllers() {
controller_ = controller_factory_fallback_->Create(initial_config_);
process_interval_ = controller_factory_fallback_->GetProcessInterval();
}
feedback_only_controller_ = feedback_only_controller;
UpdateControllerWithTimeInterval();
StartProcessPeriodicTasks();
}