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}
This commit is contained in:
committed by
Commit Bot
parent
621be836c5
commit
9da25bde28
@ -524,10 +524,14 @@ if (rtc_include_tests) {
|
||||
"../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 @@ if (rtc_include_tests) {
|
||||
"../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",
|
||||
|
||||
@ -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 @@ class PeerConnectionWrapper : public webrtc::PeerConnectionObserver,
|
||||
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 =
|
||||
|
||||
@ -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 @@ class PeerConnectionFactoryForTest : public webrtc::PeerConnectionFactory {
|
||||
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));
|
||||
|
||||
@ -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 @@ class PeerConnectionFactoryForJsepTest : public PeerConnectionFactory {
|
||||
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;
|
||||
}()) {}
|
||||
|
||||
@ -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 @@ class PeerConnectionMediaBaseTest : public ::testing::Test {
|
||||
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>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user