diff --git a/test/BUILD.gn b/test/BUILD.gn index 4dc65cb3c2..fdd167783e 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -570,6 +570,7 @@ rtc_source_set("test_common") { "../modules/audio_device:mock_audio_device", "../modules/audio_mixer:audio_mixer_impl", "../modules/audio_processing", + "../modules/congestion_controller/bbr", "../modules/rtp_rtcp", "../modules/rtp_rtcp:mock_rtp_rtcp", "../modules/rtp_rtcp:rtp_rtcp_format", @@ -583,6 +584,7 @@ rtc_source_set("test_common") { "../rtc_base:rtc_base_approved", "../rtc_base:rtc_task_queue", "../rtc_base:sequenced_task_checker", + "../rtc_base/experiments:congestion_controller_experiment", "../system_wrappers", "../system_wrappers:field_trial_api", "../system_wrappers:runtime_enabled_features_api", diff --git a/test/DEPS b/test/DEPS index f3dbff1a29..cd8b2e2bb5 100644 --- a/test/DEPS +++ b/test/DEPS @@ -11,6 +11,7 @@ include_rules = [ "+modules/audio_device", "+modules/audio_mixer", "+modules/audio_processing", + "+modules/congestion_controller/bbr", "+modules/rtp_rtcp", "+modules/video_capture", "+modules/video_coding", diff --git a/test/call_test.cc b/test/call_test.cc index 4820b8c974..4df054b5cc 100644 --- a/test/call_test.cc +++ b/test/call_test.cc @@ -18,8 +18,10 @@ #include "api/video_codecs/video_encoder_config.h" #include "call/rtp_transport_controller_send.h" #include "modules/audio_mixer/audio_mixer_impl.h" +#include "modules/congestion_controller/bbr/bbr_factory.h" #include "rtc_base/checks.h" #include "rtc_base/event.h" +#include "rtc_base/experiments/congestion_controller_experiment.h" #include "test/fake_encoder.h" #include "test/testsupport/fileutils.h" @@ -37,6 +39,7 @@ CallTest::CallTest() sender_call_transport_controller_(nullptr), audio_send_config_(nullptr), audio_send_stream_(nullptr), + bbr_network_controller_factory_(new BbrNetworkControllerFactory()), fake_encoder_factory_([this]() { auto encoder = absl::make_unique(clock_); encoder->SetMaxBitrate(fake_encoder_max_bitrate_); @@ -187,10 +190,20 @@ void CallTest::CreateSenderCall() { } void CallTest::CreateSenderCall(const Call::Config& config) { + NetworkControllerFactoryInterface* injected_factory = + config.network_controller_factory; + if (!injected_factory) { + if (CongestionControllerExperiment::BbrControllerEnabled()) { + RTC_LOG(LS_INFO) << "Using BBR network controller factory"; + injected_factory = bbr_network_controller_factory_.get(); + } else { + RTC_LOG(LS_INFO) << "Using default network controller factory"; + } + } std::unique_ptr controller_send = absl::make_unique( - Clock::GetRealTimeClock(), config.event_log, - config.network_controller_factory, config.bitrate_config); + Clock::GetRealTimeClock(), config.event_log, injected_factory, + config.bitrate_config); sender_call_transport_controller_ = controller_send.get(); sender_call_.reset(Call::Create(config, std::move(controller_send))); } diff --git a/test/call_test.h b/test/call_test.h index b47377fb17..54be39ac98 100644 --- a/test/call_test.h +++ b/test/call_test.h @@ -195,6 +195,8 @@ class CallTest : public ::testing::Test { DegradationPreference::MAINTAIN_FRAMERATE; std::unique_ptr fec_controller_factory_; + std::unique_ptr + bbr_network_controller_factory_; test::FunctionVideoEncoderFactory fake_encoder_factory_; int fake_encoder_max_bitrate_ = -1;