Migrate CreatePeerConnectionFactory implementation to EnableMedia api

Bug: webrtc:15574
Change-Id: I2e109a62a9069f37a580fa64cacdd5a86a293203
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325860
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41069}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 4aac6e8..5bc33eb 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -83,12 +83,10 @@
       "create_peerconnection_factory.h",
     ]
     deps = [
-      ":callfactory_api",
+      ":enable_media",
       ":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:peer_connection_factory",
diff --git a/api/create_peerconnection_factory.cc b/api/create_peerconnection_factory.cc
index ca1369d..5d3aace 100644
--- a/api/create_peerconnection_factory.cc
+++ b/api/create_peerconnection_factory.cc
@@ -13,14 +13,12 @@
 #include <memory>
 #include <utility>
 
-#include "api/call/call_factory_interface.h"
+#include "api/enable_media.h"
 #include "api/peer_connection_interface.h"
 #include "api/rtc_event_log/rtc_event_log_factory.h"
 #include "api/scoped_refptr.h"
 #include "api/task_queue/default_task_queue_factory.h"
 #include "api/transport/field_trial_based_config.h"
-#include "media/base/media_engine.h"
-#include "media/engine/webrtc_media_engine.h"
 #include "modules/audio_device/include/audio_device.h"
 #include "modules/audio_processing/include/audio_processing.h"
 #include "rtc_base/thread.h"
@@ -50,7 +48,6 @@
   dependencies.signaling_thread = signaling_thread;
   dependencies.task_queue_factory =
       CreateDefaultTaskQueueFactory(field_trials.get());
-  dependencies.call_factory = CreateCallFactory();
   dependencies.event_log_factory = std::make_unique<RtcEventLogFactory>(
       dependencies.task_queue_factory.get());
   dependencies.trials = std::move(field_trials);
@@ -59,24 +56,19 @@
     // TODO(bugs.webrtc.org/13145): Add an rtc::SocketFactory* argument.
     dependencies.socket_factory = network_thread->socketserver();
   }
-  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);
-  media_dependencies.owned_audio_frame_processor =
-      std::move(audio_frame_processor);
+  dependencies.adm = std::move(default_adm);
+  dependencies.audio_encoder_factory = std::move(audio_encoder_factory);
+  dependencies.audio_decoder_factory = std::move(audio_decoder_factory);
+  dependencies.audio_frame_processor = std::move(audio_frame_processor);
   if (audio_processing) {
-    media_dependencies.audio_processing = std::move(audio_processing);
+    dependencies.audio_processing = std::move(audio_processing);
   } else {
-    media_dependencies.audio_processing = AudioProcessingBuilder().Create();
+    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);
-  media_dependencies.trials = dependencies.trials.get();
-  dependencies.media_engine =
-      cricket::CreateMediaEngine(std::move(media_dependencies));
+  dependencies.audio_mixer = std::move(audio_mixer);
+  dependencies.video_encoder_factory = std::move(video_encoder_factory);
+  dependencies.video_decoder_factory = std::move(video_decoder_factory);
+  EnableMedia(dependencies);
 
   return CreateModularPeerConnectionFactory(std::move(dependencies));
 }
diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn
index b412d2f..7a3b8c1 100644
--- a/sdk/android/BUILD.gn
+++ b/sdk/android/BUILD.gn
@@ -768,8 +768,8 @@
       ":native_api_jni",
       ":native_api_stacktrace",
       "..:media_constraints",
-      "../../api:callfactory_api",
       "../../api:dtmf_sender_interface",
+      "../../api:enable_media",
       "../../api:libjingle_peerconnection_api",
       "../../api:media_stream_interface",
       "../../api:rtc_event_log_output_file",
@@ -781,7 +781,6 @@
       "../../api/task_queue:default_task_queue_factory",
       "../../api/video_codecs:video_codecs_api",
       "../../call:call_interfaces",
-      "../../media:rtc_audio_video",
       "../../media:rtc_media_base",
       "../../modules/audio_device",
       "../../modules/audio_processing:api",
diff --git a/sdk/android/src/jni/pc/peer_connection_factory.cc b/sdk/android/src/jni/pc/peer_connection_factory.cc
index c6099c2..4d2a413 100644
--- a/sdk/android/src/jni/pc/peer_connection_factory.cc
+++ b/sdk/android/src/jni/pc/peer_connection_factory.cc
@@ -14,21 +14,14 @@
 #include <utility>
 
 #include "absl/memory/memory.h"
-#include "api/video_codecs/video_decoder_factory.h"
-#include "api/video_codecs/video_encoder_factory.h"
-#include "media/base/media_engine.h"
-#include "modules/audio_device/include/audio_device.h"
-#include "modules/utility/include/jvm_android.h"
-// 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/enable_media.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 "media/engine/webrtc_media_engine.h"
 #include "modules/audio_device/include/audio_device.h"
 #include "modules/audio_processing/include/audio_processing.h"
+#include "modules/utility/include/jvm_android.h"
 #include "rtc_base/event_tracer.h"
 #include "rtc_base/physical_socket_server.h"
 #include "rtc_base/thread.h"
@@ -276,7 +269,6 @@
   dependencies.worker_thread = worker_thread.get();
   dependencies.signaling_thread = signaling_thread.get();
   dependencies.task_queue_factory = CreateDefaultTaskQueueFactory();
-  dependencies.call_factory = CreateCallFactory();
   dependencies.event_log_factory = std::make_unique<RtcEventLogFactory>(
       dependencies.task_queue_factory.get());
   dependencies.fec_controller_factory = std::move(fec_controller_factory);
@@ -290,18 +282,15 @@
         std::make_unique<AndroidNetworkMonitorFactory>();
   }
 
-  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 =
+  dependencies.adm = std::move(audio_device_module);
+  dependencies.audio_encoder_factory = std::move(audio_encoder_factory);
+  dependencies.audio_decoder_factory = std::move(audio_decoder_factory);
+  dependencies.audio_processing = std::move(audio_processor);
+  dependencies.video_encoder_factory =
       absl::WrapUnique(CreateVideoEncoderFactory(jni, jencoder_factory));
-  media_dependencies.video_decoder_factory =
+  dependencies.video_decoder_factory =
       absl::WrapUnique(CreateVideoDecoderFactory(jni, jdecoder_factory));
-  dependencies.media_engine =
-      cricket::CreateMediaEngine(std::move(media_dependencies));
+  EnableMedia(dependencies);
 
   rtc::scoped_refptr<PeerConnectionFactoryInterface> factory =
       CreateModularPeerConnectionFactory(std::move(dependencies));