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}
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index 22bb675..86461e4 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -758,10 +758,10 @@
       "../../api:callfactory_api",
       "../../api:libjingle_peerconnection_api",
       "../../api:rtc_event_log_output_file",
+      "../../api/rtc_event_log:rtc_event_log_factory",
+      "../../api/task_queue:default_task_queue_factory",
       "../../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",
       "../../media:rtc_media_base",
diff --git a/sdk/android/src/jni/pc/peer_connection_factory.cc b/sdk/android/src/jni/pc/peer_connection_factory.cc
index 64af0af..9f30fe6 100644
--- a/sdk/android/src/jni/pc/peer_connection_factory.cc
+++ b/sdk/android/src/jni/pc/peer_connection_factory.cc
@@ -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 @@
     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 @@
       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";