Pass Clock through Environment when constructing Call while cleaning up Call factory function, - pick rtp_transport_controller_send_factory based on presence in the config instead of based on the call site thus removing one extra factory function. - when Call is created through test helper TimeControllerBasedFactory use original media factory instead of direct factory, thus allow to configure degraded call through field trials in tests, and ensure difference with production code path stay minimal in the future. Bug: webrtc:15656 Change-Id: If9c2a9fc871e139502db2bec0a241d8d64c53720 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/330061 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#41329}
diff --git a/api/BUILD.gn b/api/BUILD.gn index ac97da5..3413b93 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn
@@ -1391,12 +1391,12 @@ ":time_controller", "../call", "../call:call_interfaces", - "../call:rtp_interfaces", "../pc:media_factory", "../rtc_base:checks", "../system_wrappers", "../test/time_controller", "environment", + "environment:environment_factory", ] absl_deps = [ "//third_party/abseil-cpp/absl/base:nullability" ] }
diff --git a/api/test/create_time_controller.cc b/api/test/create_time_controller.cc index 7523e05..cbf1f09 100644 --- a/api/test/create_time_controller.cc +++ b/api/test/create_time_controller.cc
@@ -16,10 +16,10 @@ #include "absl/base/nullability.h" #include "api/enable_media_with_defaults.h" #include "api/environment/environment.h" +#include "api/environment/environment_factory.h" #include "api/peer_connection_interface.h" #include "call/call.h" -#include "call/rtp_transport_config.h" -#include "call/rtp_transport_controller_send_factory_interface.h" +#include "call/call_config.h" #include "pc/media_factory.h" #include "rtc_base/checks.h" #include "system_wrappers/include/clock.h" @@ -49,9 +49,12 @@ : clock_(clock), media_factory_(std::move(media_factory)) {} std::unique_ptr<Call> CreateCall(const CallConfig& config) override { - return Call::Create(config, clock_, - config.rtp_transport_controller_send_factory->Create( - config.ExtractTransportConfig(), clock_)); + EnvironmentFactory env_factory(config.env); + env_factory.Set(clock_); + + CallConfig config_with_custom_clock = config; + config_with_custom_clock.env = env_factory.Create(); + return media_factory_->CreateCall(config_with_custom_clock); } std::unique_ptr<cricket::MediaEngineInterface> CreateMediaEngine(