Force DefaultTaskQueueFactory in legacy CreatePeerConnectionFactory

Users that would like custom TaskQueueFactory (e.g. chromium) should use
CreateModularPeerConnectionFactory directly

Bug: webrtc:10284
Change-Id: I7ba55a0f21560d4beb71a7f93f6fa70b0fe74931
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142234
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28324}
This commit is contained in:
Danil Chapovalov
2019-06-18 16:43:37 +02:00
committed by Commit Bot
parent c2a54dca68
commit 5bf58064f2
4 changed files with 52 additions and 57 deletions

View File

@ -35,33 +35,32 @@ rtc_source_set("callfactory_api") {
] ]
} }
rtc_static_library("create_peerconnection_factory") { if (!build_with_chromium) {
visibility = [ "*" ] rtc_static_library("create_peerconnection_factory") {
sources = [ visibility = [ "*" ]
"create_peerconnection_factory.cc", sources = [
"create_peerconnection_factory.h", "create_peerconnection_factory.cc",
] "create_peerconnection_factory.h",
deps = [ ]
":callfactory_api", deps = [
":fec_controller_api", ":callfactory_api",
":libjingle_peerconnection_api", ":libjingle_peerconnection_api",
":network_state_predictor_api", ":scoped_refptr",
":scoped_refptr", "../api/rtc_event_log:rtc_event_log_factory",
"../logging:rtc_event_log_api", "../media:rtc_audio_video",
"../logging:rtc_event_log_impl_base", "../media:rtc_media_base",
"../media:rtc_audio_video", "../modules/audio_device:audio_device_api",
"../media:rtc_media_base", "../modules/audio_processing:api",
"../modules/audio_device:audio_device_api", "../pc:peerconnection",
"../modules/audio_processing:api", "../rtc_base",
"../pc:peerconnection", "../rtc_base:rtc_base_approved",
"../rtc_base", "audio:audio_mixer_api",
"../rtc_base:deprecation", "audio_codecs:audio_codecs_api",
"../rtc_base:rtc_base_approved", "task_queue:default_task_queue_factory",
"audio:audio_mixer_api", "video_codecs:video_codecs_api",
"audio_codecs:audio_codecs_api", "//third_party/abseil-cpp/absl/memory",
"transport:network_control", ]
"video_codecs:video_codecs_api", }
]
} }
rtc_source_set("rtp_headers") { rtc_source_set("rtp_headers") {

View File

@ -10,21 +10,14 @@
#include "api/create_peerconnection_factory.h" #include "api/create_peerconnection_factory.h"
#include <memory>
#include <utility> #include <utility>
#include "api/audio/audio_mixer.h" #include "absl/memory/memory.h"
#include "api/audio_codecs/audio_decoder_factory.h"
#include "api/audio_codecs/audio_encoder_factory.h"
#include "api/call/call_factory_interface.h" #include "api/call/call_factory_interface.h"
#include "api/fec_controller.h"
#include "api/peer_connection_interface.h" #include "api/peer_connection_interface.h"
#include "api/rtc_event_log/rtc_event_log_factory.h"
#include "api/scoped_refptr.h" #include "api/scoped_refptr.h"
#include "api/transport/network_control.h" #include "api/task_queue/default_task_queue_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_factory.h"
#include "logging/rtc_event_log/rtc_event_log_factory_interface.h"
#include "media/base/media_engine.h" #include "media/base/media_engine.h"
#include "media/engine/webrtc_media_engine.h" #include "media/engine/webrtc_media_engine.h"
#include "modules/audio_device/include/audio_device.h" #include "modules/audio_device/include/audio_device.h"
@ -44,26 +37,31 @@ rtc::scoped_refptr<PeerConnectionFactoryInterface> CreatePeerConnectionFactory(
std::unique_ptr<VideoDecoderFactory> video_decoder_factory, std::unique_ptr<VideoDecoderFactory> video_decoder_factory,
rtc::scoped_refptr<AudioMixer> audio_mixer, rtc::scoped_refptr<AudioMixer> audio_mixer,
rtc::scoped_refptr<AudioProcessing> audio_processing) { rtc::scoped_refptr<AudioProcessing> audio_processing) {
if (!audio_processing)
audio_processing = AudioProcessingBuilder().Create();
std::unique_ptr<cricket::MediaEngineInterface> media_engine =
cricket::WebRtcMediaEngineFactory::Create(
default_adm, audio_encoder_factory, audio_decoder_factory,
std::move(video_encoder_factory), std::move(video_decoder_factory),
audio_mixer, audio_processing);
std::unique_ptr<CallFactoryInterface> call_factory = CreateCallFactory();
std::unique_ptr<RtcEventLogFactoryInterface> event_log_factory =
CreateRtcEventLogFactory();
PeerConnectionFactoryDependencies dependencies; PeerConnectionFactoryDependencies dependencies;
dependencies.network_thread = network_thread; dependencies.network_thread = network_thread;
dependencies.worker_thread = worker_thread; dependencies.worker_thread = worker_thread;
dependencies.signaling_thread = signaling_thread; dependencies.signaling_thread = signaling_thread;
dependencies.media_engine = std::move(media_engine); dependencies.task_queue_factory = CreateDefaultTaskQueueFactory();
dependencies.call_factory = std::move(call_factory); dependencies.call_factory = CreateCallFactory();
dependencies.event_log_factory = std::move(event_log_factory); dependencies.event_log_factory = absl::make_unique<RtcEventLogFactory>(
dependencies.task_queue_factory.get());
cricket::MediaEngineDependencies media_dependencies;
media_dependencies.task_queue_factory = dependencies.task_queue_factory.get();
media_dependencies.adm = std::move(default_adm);
media_dependencies.audio_encoder_factory = std::move(audio_encoder_factory);
media_dependencies.audio_decoder_factory = std::move(audio_decoder_factory);
if (audio_processing) {
media_dependencies.audio_processing = std::move(audio_processing);
} else {
media_dependencies.audio_processing = AudioProcessingBuilder().Create();
}
media_dependencies.audio_mixer = std::move(audio_mixer);
media_dependencies.video_encoder_factory = std::move(video_encoder_factory);
media_dependencies.video_decoder_factory = std::move(video_decoder_factory);
dependencies.media_engine =
cricket::CreateMediaEngine(std::move(media_dependencies));
return CreateModularPeerConnectionFactory(std::move(dependencies)); return CreateModularPeerConnectionFactory(std::move(dependencies));
} }

View File

@ -16,11 +16,10 @@
#include "api/audio/audio_mixer.h" #include "api/audio/audio_mixer.h"
#include "api/audio_codecs/audio_decoder_factory.h" #include "api/audio_codecs/audio_decoder_factory.h"
#include "api/audio_codecs/audio_encoder_factory.h" #include "api/audio_codecs/audio_encoder_factory.h"
#include "api/fec_controller.h"
#include "api/peer_connection_interface.h" #include "api/peer_connection_interface.h"
#include "api/scoped_refptr.h" #include "api/scoped_refptr.h"
#include "api/transport/network_control.h" #include "api/video_codecs/video_decoder_factory.h"
#include "rtc_base/deprecation.h" #include "api/video_codecs/video_encoder_factory.h"
namespace rtc { namespace rtc {
// TODO(bugs.webrtc.org/9987): Move rtc::Thread to api/ or expose a better // TODO(bugs.webrtc.org/9987): Move rtc::Thread to api/ or expose a better

View File

@ -249,7 +249,6 @@ rtc_source_set("libjingle_peerconnection") {
visibility = [ "*" ] visibility = [ "*" ]
deps = [ deps = [
":peerconnection", ":peerconnection",
"../api:create_peerconnection_factory",
"../api:libjingle_peerconnection_api", "../api:libjingle_peerconnection_api",
] ]
} }