In PeerConnection unittests set TaskQueueFactory explicitly
instead of using factories for MediaEngine and RtcEventLog that rely on GlobalTaskQueueFactory
Bug: webrtc:10284
Change-Id: Ie1135f70f4ae4d047c4d6bf2db61489a663385aa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141875
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28328}
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 1a48e91..c46d758 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -524,10 +524,14 @@
"../api:mock_rtp",
"../api:scoped_refptr",
"../api/audio:audio_mixer_api",
+ "../api/rtc_event_log",
+ "../api/rtc_event_log:rtc_event_log_factory",
+ "../api/task_queue:default_task_queue_factory",
"../api/units:time_delta",
"../api/video:builtin_video_bitrate_allocator_factory",
"../logging:fake_rtc_event_log",
"../media:rtc_media_config",
+ "../media:rtc_media_engine_defaults",
"../modules/audio_device:audio_device_api",
"../modules/audio_processing:audio_processing_statistics",
"../modules/rtp_rtcp:rtp_rtcp_format",
@@ -565,7 +569,6 @@
"../api/video_codecs:video_codecs_api",
"../call:call_interfaces",
"../logging:rtc_event_log_api",
- "../logging:rtc_event_log_impl_base",
"../media:rtc_audio_video",
"../media:rtc_data", # TODO(phoglund): AFAIK only used for one sctp constant.
"../media:rtc_media_base",
diff --git a/pc/peer_connection_integrationtest.cc b/pc/peer_connection_integrationtest.cc
index 5ce8ee7..c368ec0 100644
--- a/pc/peer_connection_integrationtest.cc
+++ b/pc/peer_connection_integrationtest.cc
@@ -23,24 +23,20 @@
#include "absl/algorithm/container.h"
#include "absl/memory/memory.h"
-#include "api/audio_codecs/builtin_audio_decoder_factory.h"
-#include "api/audio_codecs/builtin_audio_encoder_factory.h"
#include "api/media_stream_interface.h"
#include "api/peer_connection_interface.h"
#include "api/peer_connection_proxy.h"
+#include "api/rtc_event_log/rtc_event_log_factory.h"
#include "api/rtp_receiver_interface.h"
+#include "api/task_queue/default_task_queue_factory.h"
#include "api/test/loopback_media_transport.h"
#include "api/uma_metrics.h"
-#include "api/video_codecs/builtin_video_decoder_factory.h"
-#include "api/video_codecs/builtin_video_encoder_factory.h"
#include "api/video_codecs/sdp_video_format.h"
#include "call/call.h"
#include "logging/rtc_event_log/fake_rtc_event_log_factory.h"
-#include "logging/rtc_event_log/rtc_event_log_factory.h"
-#include "logging/rtc_event_log/rtc_event_log_factory_interface.h"
#include "media/engine/fake_webrtc_video_engine.h"
#include "media/engine/webrtc_media_engine.h"
-#include "modules/audio_processing/include/audio_processing.h"
+#include "media/engine/webrtc_media_engine_defaults.h"
#include "p2p/base/mock_async_resolver.h"
#include "p2p/base/p2p_constants.h"
#include "p2p/base/port_interface.h"
@@ -610,22 +606,23 @@
pc_factory_dependencies.network_thread = network_thread;
pc_factory_dependencies.worker_thread = worker_thread;
pc_factory_dependencies.signaling_thread = signaling_thread;
+ pc_factory_dependencies.task_queue_factory =
+ webrtc::CreateDefaultTaskQueueFactory();
+ cricket::MediaEngineDependencies media_deps;
+ media_deps.task_queue_factory =
+ pc_factory_dependencies.task_queue_factory.get();
+ media_deps.adm = fake_audio_capture_module_;
+ webrtc::SetMediaEngineDefaults(&media_deps);
pc_factory_dependencies.media_engine =
- cricket::WebRtcMediaEngineFactory::Create(
- rtc::scoped_refptr<webrtc::AudioDeviceModule>(
- fake_audio_capture_module_),
- webrtc::CreateBuiltinAudioEncoderFactory(),
- webrtc::CreateBuiltinAudioDecoderFactory(),
- webrtc::CreateBuiltinVideoEncoderFactory(),
- webrtc::CreateBuiltinVideoDecoderFactory(), nullptr,
- webrtc::AudioProcessingBuilder().Create());
+ cricket::CreateMediaEngine(std::move(media_deps));
pc_factory_dependencies.call_factory = webrtc::CreateCallFactory();
if (event_log_factory) {
event_log_factory_ = event_log_factory.get();
pc_factory_dependencies.event_log_factory = std::move(event_log_factory);
} else {
pc_factory_dependencies.event_log_factory =
- webrtc::CreateRtcEventLogFactory();
+ absl::make_unique<webrtc::RtcEventLogFactory>(
+ pc_factory_dependencies.task_queue_factory.get());
}
if (media_transport_factory) {
pc_factory_dependencies.media_transport_factory =
diff --git a/pc/peer_connection_interface_unittest.cc b/pc/peer_connection_interface_unittest.cc
index 2ea3e86..1ea4b7f 100644
--- a/pc/peer_connection_interface_unittest.cc
+++ b/pc/peer_connection_interface_unittest.cc
@@ -33,24 +33,25 @@
#include "api/media_types.h"
#include "api/peer_connection_interface.h"
#include "api/rtc_error.h"
+#include "api/rtc_event_log/rtc_event_log.h"
+#include "api/rtc_event_log/rtc_event_log_factory.h"
#include "api/rtc_event_log_output.h"
#include "api/rtc_event_log_output_file.h"
#include "api/rtp_receiver_interface.h"
#include "api/rtp_sender_interface.h"
#include "api/rtp_transceiver_interface.h"
#include "api/scoped_refptr.h"
+#include "api/task_queue/default_task_queue_factory.h"
#include "api/video_codecs/builtin_video_decoder_factory.h"
#include "api/video_codecs/builtin_video_encoder_factory.h"
#include "api/video_codecs/video_decoder_factory.h"
#include "api/video_codecs/video_encoder_factory.h"
-#include "logging/rtc_event_log/rtc_event_log.h"
-#include "logging/rtc_event_log/rtc_event_log_factory.h"
-#include "logging/rtc_event_log/rtc_event_log_factory_interface.h"
#include "media/base/codec.h"
#include "media/base/media_config.h"
#include "media/base/media_engine.h"
#include "media/base/stream_params.h"
#include "media/engine/webrtc_media_engine.h"
+#include "media/engine/webrtc_media_engine_defaults.h"
#include "media/sctp/sctp_transport_internal.h"
#include "modules/audio_device/include/audio_device.h"
#include "modules/audio_processing/include/audio_processing.h"
@@ -640,27 +641,22 @@
public:
static rtc::scoped_refptr<PeerConnectionFactoryForTest>
CreatePeerConnectionFactoryForTest() {
- auto audio_encoder_factory = webrtc::CreateBuiltinAudioEncoderFactory();
- auto audio_decoder_factory = webrtc::CreateBuiltinAudioDecoderFactory();
- auto video_encoder_factory = webrtc::CreateBuiltinVideoEncoderFactory();
- auto video_decoder_factory = webrtc::CreateBuiltinVideoDecoderFactory();
-
PeerConnectionFactoryDependencies dependencies;
dependencies.worker_thread = rtc::Thread::Current();
dependencies.network_thread = rtc::Thread::Current();
dependencies.signaling_thread = rtc::Thread::Current();
-
+ dependencies.task_queue_factory = CreateDefaultTaskQueueFactory();
+ cricket::MediaEngineDependencies media_deps;
+ media_deps.task_queue_factory = dependencies.task_queue_factory.get();
// Use fake audio device module since we're only testing the interface
// level, and using a real one could make tests flaky when run in parallel.
- dependencies.media_engine = std::unique_ptr<cricket::MediaEngineInterface>(
- cricket::WebRtcMediaEngineFactory::Create(
- FakeAudioCaptureModule::Create(), audio_encoder_factory,
- audio_decoder_factory, std::move(video_encoder_factory),
- std::move(video_decoder_factory), nullptr,
- webrtc::AudioProcessingBuilder().Create()));
-
+ media_deps.adm = FakeAudioCaptureModule::Create();
+ SetMediaEngineDefaults(&media_deps);
+ dependencies.media_engine =
+ cricket::CreateMediaEngine(std::move(media_deps));
dependencies.call_factory = webrtc::CreateCallFactory();
- dependencies.event_log_factory = webrtc::CreateRtcEventLogFactory();
+ dependencies.event_log_factory = absl::make_unique<RtcEventLogFactory>(
+ dependencies.task_queue_factory.get());
return new rtc::RefCountedObject<PeerConnectionFactoryForTest>(
std::move(dependencies));
diff --git a/pc/peer_connection_jsep_unittest.cc b/pc/peer_connection_jsep_unittest.cc
index 26d702b..161f534 100644
--- a/pc/peer_connection_jsep_unittest.cc
+++ b/pc/peer_connection_jsep_unittest.cc
@@ -8,12 +8,9 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "api/audio_codecs/builtin_audio_decoder_factory.h"
-#include "api/audio_codecs/builtin_audio_encoder_factory.h"
-#include "api/video_codecs/builtin_video_decoder_factory.h"
-#include "api/video_codecs/builtin_video_encoder_factory.h"
+#include "api/task_queue/default_task_queue_factory.h"
#include "media/engine/webrtc_media_engine.h"
-#include "modules/audio_processing/include/audio_processing.h"
+#include "media/engine/webrtc_media_engine_defaults.h"
#include "pc/media_session.h"
#include "pc/peer_connection_factory.h"
#include "pc/peer_connection_wrapper.h"
@@ -51,14 +48,13 @@
dependencies.worker_thread = rtc::Thread::Current();
dependencies.network_thread = rtc::Thread::Current();
dependencies.signaling_thread = rtc::Thread::Current();
- dependencies.media_engine = cricket::WebRtcMediaEngineFactory::Create(
- rtc::scoped_refptr<AudioDeviceModule>(
- FakeAudioCaptureModule::Create()),
- CreateBuiltinAudioEncoderFactory(),
- CreateBuiltinAudioDecoderFactory(),
- CreateBuiltinVideoEncoderFactory(),
- CreateBuiltinVideoDecoderFactory(), nullptr,
- AudioProcessingBuilder().Create());
+ dependencies.task_queue_factory = CreateDefaultTaskQueueFactory();
+ cricket::MediaEngineDependencies media_deps;
+ media_deps.task_queue_factory = dependencies.task_queue_factory.get();
+ media_deps.adm = FakeAudioCaptureModule::Create();
+ SetMediaEngineDefaults(&media_deps);
+ dependencies.media_engine =
+ cricket::CreateMediaEngine(std::move(media_deps));
dependencies.call_factory = CreateCallFactory();
return dependencies;
}()) {}
diff --git a/pc/peer_connection_media_unittest.cc b/pc/peer_connection_media_unittest.cc
index ac2563d..031622f 100644
--- a/pc/peer_connection_media_unittest.cc
+++ b/pc/peer_connection_media_unittest.cc
@@ -17,8 +17,9 @@
#include "absl/algorithm/container.h"
#include "absl/types/optional.h"
#include "api/call/call_factory_interface.h"
+#include "api/rtc_event_log/rtc_event_log_factory.h"
+#include "api/task_queue/default_task_queue_factory.h"
#include "api/test/fake_media_transport.h"
-#include "logging/rtc_event_log/rtc_event_log_factory.h"
#include "media/base/fake_media_engine.h"
#include "p2p/base/fake_port_allocator.h"
#include "pc/media_session.h"
@@ -96,9 +97,12 @@
factory_dependencies.network_thread = rtc::Thread::Current();
factory_dependencies.worker_thread = rtc::Thread::Current();
factory_dependencies.signaling_thread = rtc::Thread::Current();
+ factory_dependencies.task_queue_factory = CreateDefaultTaskQueueFactory();
factory_dependencies.media_engine = std::move(media_engine);
factory_dependencies.call_factory = CreateCallFactory();
- factory_dependencies.event_log_factory = CreateRtcEventLogFactory();
+ factory_dependencies.event_log_factory =
+ absl::make_unique<RtcEventLogFactory>(
+ factory_dependencies.task_queue_factory.get());
factory_dependencies.media_transport_factory =
absl::make_unique<FakeMediaTransportFactory>();