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

View File

@ -10,21 +10,14 @@
#include "api/create_peerconnection_factory.h"
#include <memory>
#include <utility>
#include "api/audio/audio_mixer.h"
#include "api/audio_codecs/audio_decoder_factory.h"
#include "api/audio_codecs/audio_encoder_factory.h"
#include "absl/memory/memory.h"
#include "api/call/call_factory_interface.h"
#include "api/fec_controller.h"
#include "api/peer_connection_interface.h"
#include "api/rtc_event_log/rtc_event_log_factory.h"
#include "api/scoped_refptr.h"
#include "api/transport/network_control.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 "api/task_queue/default_task_queue_factory.h"
#include "media/base/media_engine.h"
#include "media/engine/webrtc_media_engine.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,
rtc::scoped_refptr<AudioMixer> audio_mixer,
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;
dependencies.network_thread = network_thread;
dependencies.worker_thread = worker_thread;
dependencies.signaling_thread = signaling_thread;
dependencies.media_engine = std::move(media_engine);
dependencies.call_factory = std::move(call_factory);
dependencies.event_log_factory = std::move(event_log_factory);
dependencies.task_queue_factory = CreateDefaultTaskQueueFactory();
dependencies.call_factory = CreateCallFactory();
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));
}

View File

@ -16,11 +16,10 @@
#include "api/audio/audio_mixer.h"
#include "api/audio_codecs/audio_decoder_factory.h"
#include "api/audio_codecs/audio_encoder_factory.h"
#include "api/fec_controller.h"
#include "api/peer_connection_interface.h"
#include "api/scoped_refptr.h"
#include "api/transport/network_control.h"
#include "rtc_base/deprecation.h"
#include "api/video_codecs/video_decoder_factory.h"
#include "api/video_codecs/video_encoder_factory.h"
namespace rtc {
// 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 = [ "*" ]
deps = [
":peerconnection",
"../api:create_peerconnection_factory",
"../api:libjingle_peerconnection_api",
]
}