Use DefaultTaskQueueFactory in CreatePeerConnectionFactoryForJava
instead of using components that rely on GlobalTaskQueueFactory Bug: webrtc:10284 Change-Id: Icf7d1758b7f3ff6277b6a6d1b152715f0ab50969 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142800 Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28367}
This commit is contained in:
committed by
Commit Bot
parent
a95949e3f5
commit
3391072e09
@ -22,9 +22,10 @@
|
||||
// We don't depend on the audio processing module implementation.
|
||||
// The user may pass in a nullptr.
|
||||
#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/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 "media/engine/webrtc_media_engine.h"
|
||||
#include "modules/audio_device/include/audio_device.h"
|
||||
#include "modules/audio_processing/include/audio_processing.h"
|
||||
@ -295,27 +296,14 @@ ScopedJavaLocalRef<jobject> CreatePeerConnectionFactoryForJava(
|
||||
rtc::NetworkMonitorFactory::SetFactory(network_monitor_factory);
|
||||
}
|
||||
|
||||
rtc::scoped_refptr<AudioMixer> audio_mixer = nullptr;
|
||||
std::unique_ptr<CallFactoryInterface> call_factory =
|
||||
webrtc::CreateCallFactory();
|
||||
std::unique_ptr<RtcEventLogFactoryInterface> rtc_event_log_factory =
|
||||
webrtc::CreateRtcEventLogFactory();
|
||||
|
||||
std::unique_ptr<cricket::MediaEngineInterface> media_engine =
|
||||
cricket::WebRtcMediaEngineFactory::Create(
|
||||
audio_device_module, audio_encoder_factory, audio_decoder_factory,
|
||||
std::unique_ptr<VideoEncoderFactory>(
|
||||
CreateVideoEncoderFactory(jni, jencoder_factory)),
|
||||
std::unique_ptr<VideoDecoderFactory>(
|
||||
CreateVideoDecoderFactory(jni, jdecoder_factory)),
|
||||
audio_mixer, audio_processor);
|
||||
PeerConnectionFactoryDependencies dependencies;
|
||||
dependencies.network_thread = network_thread.get();
|
||||
dependencies.worker_thread = worker_thread.get();
|
||||
dependencies.signaling_thread = signaling_thread.get();
|
||||
dependencies.media_engine = std::move(media_engine);
|
||||
dependencies.call_factory = std::move(call_factory);
|
||||
dependencies.event_log_factory = std::move(rtc_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());
|
||||
dependencies.fec_controller_factory = std::move(fec_controller_factory);
|
||||
dependencies.network_controller_factory =
|
||||
std::move(network_controller_factory);
|
||||
@ -323,8 +311,21 @@ ScopedJavaLocalRef<jobject> CreatePeerConnectionFactoryForJava(
|
||||
std::move(network_state_predictor_factory);
|
||||
dependencies.media_transport_factory = std::move(media_transport_factory);
|
||||
|
||||
rtc::scoped_refptr<PeerConnectionFactoryInterface> factory(
|
||||
CreateModularPeerConnectionFactory(std::move(dependencies)));
|
||||
cricket::MediaEngineDependencies media_dependencies;
|
||||
media_dependencies.task_queue_factory = dependencies.task_queue_factory.get();
|
||||
media_dependencies.adm = std::move(audio_device_module);
|
||||
media_dependencies.audio_encoder_factory = std::move(audio_encoder_factory);
|
||||
media_dependencies.audio_decoder_factory = std::move(audio_decoder_factory);
|
||||
media_dependencies.audio_processing = std::move(audio_processor);
|
||||
media_dependencies.video_encoder_factory =
|
||||
absl::WrapUnique(CreateVideoEncoderFactory(jni, jencoder_factory));
|
||||
media_dependencies.video_decoder_factory =
|
||||
absl::WrapUnique(CreateVideoDecoderFactory(jni, jdecoder_factory));
|
||||
dependencies.media_engine =
|
||||
cricket::CreateMediaEngine(std::move(media_dependencies));
|
||||
|
||||
rtc::scoped_refptr<PeerConnectionFactoryInterface> factory =
|
||||
CreateModularPeerConnectionFactory(std::move(dependencies));
|
||||
|
||||
RTC_CHECK(factory) << "Failed to create the peer connection factory; "
|
||||
<< "WebRTC/libjingle init likely failed on this device";
|
||||
|
||||
Reference in New Issue
Block a user