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}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 8829cc5..8e9767d 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -35,33 +35,32 @@
   ]
 }
 
-rtc_static_library("create_peerconnection_factory") {
-  visibility = [ "*" ]
-  sources = [
-    "create_peerconnection_factory.cc",
-    "create_peerconnection_factory.h",
-  ]
-  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",
-    "../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",
-    "video_codecs:video_codecs_api",
-  ]
+if (!build_with_chromium) {
+  rtc_static_library("create_peerconnection_factory") {
+    visibility = [ "*" ]
+    sources = [
+      "create_peerconnection_factory.cc",
+      "create_peerconnection_factory.h",
+    ]
+    deps = [
+      ":callfactory_api",
+      ":libjingle_peerconnection_api",
+      ":scoped_refptr",
+      "../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:rtc_base_approved",
+      "audio:audio_mixer_api",
+      "audio_codecs:audio_codecs_api",
+      "task_queue:default_task_queue_factory",
+      "video_codecs:video_codecs_api",
+      "//third_party/abseil-cpp/absl/memory",
+    ]
+  }
 }
 
 rtc_source_set("rtp_headers") {
diff --git a/api/create_peerconnection_factory.cc b/api/create_peerconnection_factory.cc
index 0d15e8c..ff08ec8 100644
--- a/api/create_peerconnection_factory.cc
+++ b/api/create_peerconnection_factory.cc
@@ -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 @@
     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));
 }
 
diff --git a/api/create_peerconnection_factory.h b/api/create_peerconnection_factory.h
index 40f1276..ac50736 100644
--- a/api/create_peerconnection_factory.h
+++ b/api/create_peerconnection_factory.h
@@ -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
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index b4573d9..1a48e91 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -249,7 +249,6 @@
   visibility = [ "*" ]
   deps = [
     ":peerconnection",
-    "../api:create_peerconnection_factory",
     "../api:libjingle_peerconnection_api",
   ]
 }