Migrage objc sdk and examples to EnableMedia api

Bug: webrtc:15574
Change-Id: Iba5c33511eb73bb1c1ec92b6d20c6f20e2296137
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325531
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41065}
diff --git a/examples/BUILD.gn b/examples/BUILD.gn
index 458205c..4ace29b 100644
--- a/examples/BUILD.gn
+++ b/examples/BUILD.gn
@@ -489,6 +489,7 @@
       ]
 
       deps = [
+        "../api:enable_media",
         "../api:libjingle_peerconnection_api",
         "../api:scoped_refptr",
         "../api:sequence_checker",
@@ -496,7 +497,6 @@
         "../api/audio_codecs:builtin_audio_encoder_factory",
         "../api/rtc_event_log:rtc_event_log_factory",
         "../api/task_queue:default_task_queue_factory",
-        "../media:rtc_audio_video",
         "../modules/audio_processing",
         "../modules/audio_processing:api",
         "../pc:libjingle_peerconnection",
diff --git a/examples/objcnativeapi/objc/objc_call_client.mm b/examples/objcnativeapi/objc/objc_call_client.mm
index 90bcfcc..996c6a9 100644
--- a/examples/objcnativeapi/objc/objc_call_client.mm
+++ b/examples/objcnativeapi/objc/objc_call_client.mm
@@ -20,10 +20,10 @@
 
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.h"
+#include "api/enable_media.h"
 #include "api/peer_connection_interface.h"
 #include "api/rtc_event_log/rtc_event_log_factory.h"
 #include "api/task_queue/default_task_queue_factory.h"
-#include "media/engine/webrtc_media_engine.h"
 #include "modules/audio_processing/include/audio_processing.h"
 #include "sdk/objc/native/api/video_capturer.h"
 #include "sdk/objc/native/api/video_decoder_factory.h"
@@ -118,18 +118,14 @@
   dependencies.worker_thread = worker_thread_.get();
   dependencies.signaling_thread = signaling_thread_.get();
   dependencies.task_queue_factory = webrtc::CreateDefaultTaskQueueFactory();
-  cricket::MediaEngineDependencies media_deps;
-  media_deps.task_queue_factory = dependencies.task_queue_factory.get();
-  media_deps.audio_encoder_factory = webrtc::CreateBuiltinAudioEncoderFactory();
-  media_deps.audio_decoder_factory = webrtc::CreateBuiltinAudioDecoderFactory();
-  media_deps.video_encoder_factory = webrtc::ObjCToNativeVideoEncoderFactory(
+  dependencies.audio_encoder_factory = webrtc::CreateBuiltinAudioEncoderFactory();
+  dependencies.audio_decoder_factory = webrtc::CreateBuiltinAudioDecoderFactory();
+  dependencies.video_encoder_factory = webrtc::ObjCToNativeVideoEncoderFactory(
       [[RTC_OBJC_TYPE(RTCDefaultVideoEncoderFactory) alloc] init]);
-  media_deps.video_decoder_factory = webrtc::ObjCToNativeVideoDecoderFactory(
+  dependencies.video_decoder_factory = webrtc::ObjCToNativeVideoDecoderFactory(
       [[RTC_OBJC_TYPE(RTCDefaultVideoDecoderFactory) alloc] init]);
-  media_deps.audio_processing = webrtc::AudioProcessingBuilder().Create();
-  dependencies.media_engine = cricket::CreateMediaEngine(std::move(media_deps));
-  RTC_LOG(LS_INFO) << "Media engine created: " << dependencies.media_engine.get();
-  dependencies.call_factory = webrtc::CreateCallFactory();
+  dependencies.audio_processing = webrtc::AudioProcessingBuilder().Create();
+  webrtc::EnableMedia(dependencies);
   dependencies.event_log_factory =
       std::make_unique<webrtc::RtcEventLogFactory>(dependencies.task_queue_factory.get());
   pcf_ = webrtc::CreateModularPeerConnectionFactory(std::move(dependencies));
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 4f5ceb5..bff9b91 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -1051,6 +1051,7 @@
         ":videosource_objc",
         ":videotoolbox_objc",
         "../api:dtmf_sender_interface",
+        "../api:enable_media",
         "../api:libjingle_peerconnection_api",
         "../api:media_stream_interface",
         "../api:rtc_event_log_output_file",
@@ -1071,7 +1072,6 @@
         "../api/video_codecs:video_codecs_api",
         "../common_video",
         "../media:media_constants",
-        "../media:rtc_audio_video",
         "../media:rtc_media_base",
         "../modules/audio_device:audio_device_api",
         "../modules/audio_processing",
diff --git a/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm b/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
index 62b5554..15f9eb9 100644
--- a/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
+++ b/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
@@ -32,12 +32,12 @@
 
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "api/audio_codecs/builtin_audio_encoder_factory.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/transport/field_trial_based_config.h"
 #import "components/video_codec/RTCVideoDecoderFactoryH264.h"
 #import "components/video_codec/RTCVideoEncoderFactoryH264.h"
-#include "media/engine/webrtc_media_engine.h"
 #include "modules/audio_device/include/audio_device.h"
 #include "modules/audio_processing/include/audio_processing.h"
 
@@ -195,21 +195,17 @@
     dependencies.trials = std::make_unique<webrtc::FieldTrialBasedConfig>();
     dependencies.task_queue_factory =
         webrtc::CreateDefaultTaskQueueFactory(dependencies.trials.get());
-    cricket::MediaEngineDependencies media_deps;
-    media_deps.adm = std::move(audioDeviceModule);
-    media_deps.task_queue_factory = dependencies.task_queue_factory.get();
-    media_deps.audio_encoder_factory = std::move(audioEncoderFactory);
-    media_deps.audio_decoder_factory = std::move(audioDecoderFactory);
-    media_deps.video_encoder_factory = std::move(videoEncoderFactory);
-    media_deps.video_decoder_factory = std::move(videoDecoderFactory);
+    dependencies.adm = std::move(audioDeviceModule);
+    dependencies.audio_encoder_factory = std::move(audioEncoderFactory);
+    dependencies.audio_decoder_factory = std::move(audioDecoderFactory);
+    dependencies.video_encoder_factory = std::move(videoEncoderFactory);
+    dependencies.video_decoder_factory = std::move(videoDecoderFactory);
     if (audioProcessingModule) {
-      media_deps.audio_processing = std::move(audioProcessingModule);
+      dependencies.audio_processing = std::move(audioProcessingModule);
     } else {
-      media_deps.audio_processing = webrtc::AudioProcessingBuilder().Create();
+      dependencies.audio_processing = webrtc::AudioProcessingBuilder().Create();
     }
-    media_deps.trials = dependencies.trials.get();
-    dependencies.media_engine = cricket::CreateMediaEngine(std::move(media_deps));
-    dependencies.call_factory = webrtc::CreateCallFactory();
+    webrtc::EnableMedia(dependencies);
     dependencies.event_log_factory =
         std::make_unique<webrtc::RtcEventLogFactory>(dependencies.task_queue_factory.get());
     dependencies.network_controller_factory = std::move(networkControllerFactory);