From 7d3efacb61762cb3f8486d34b6a2d77e410b0114 Mon Sep 17 00:00:00 2001 From: Sebastian Jansson Date: Fri, 13 Apr 2018 10:54:37 +0200 Subject: [PATCH] Disable toggling of controller in SSCC. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Commit-Queue: Sebastian Jansson Cr-Commit-Position: refs/heads/master@{#22856} --- .../rtp/include/send_side_congestion_controller.h | 1 - .../rtp/send_side_congestion_controller.cc | 12 +++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/modules/congestion_controller/rtp/include/send_side_congestion_controller.h b/modules/congestion_controller/rtp/include/send_side_congestion_controller.h index b51f2b457e..835711cd75 100644 --- a/modules/congestion_controller/rtp/include/send_side_congestion_controller.h +++ b/modules/congestion_controller/rtp/include/send_side_congestion_controller.h @@ -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_ diff --git a/modules/congestion_controller/rtp/send_side_congestion_controller.cc b/modules/congestion_controller/rtp/send_side_congestion_controller.cc index f9be7ee38c..4505ad39ee 100644 --- a/modules/congestion_controller/rtp/send_side_congestion_controller.cc +++ b/modules/congestion_controller/rtp/send_side_congestion_controller.cc @@ -53,8 +53,10 @@ bool IsPacerPushbackExperimentEnabled() { std::unique_ptr MaybeCreateBbrFactory() { if (CongestionControllerExperiment::BbrControllerEnabled()) { + RTC_LOG(LS_INFO) << "Creating BBR factory"; return rtc::MakeUnique(); } 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("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(); }