From 7e21b0ca9d37f4bfe74c64ea20ed7e0661a86fb0 Mon Sep 17 00:00:00 2001 From: Danil Chapovalov Date: Thu, 2 Nov 2023 13:11:21 +0100 Subject: [PATCH] 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 Reviewed-by: Harald Alvestrand Auto-Submit: Danil Chapovalov Cr-Commit-Position: refs/heads/main@{#41065} --- examples/BUILD.gn | 2 +- .../objcnativeapi/objc/objc_call_client.mm | 18 ++++++--------- sdk/BUILD.gn | 2 +- .../RTCPeerConnectionFactory.mm | 22 ++++++++----------- 4 files changed, 18 insertions(+), 26 deletions(-) diff --git a/examples/BUILD.gn b/examples/BUILD.gn index 458205cea7..4ace29bb7e 100644 --- a/examples/BUILD.gn +++ b/examples/BUILD.gn @@ -489,6 +489,7 @@ if (is_ios || (is_mac && target_cpu != "x86")) { ] deps = [ + "../api:enable_media", "../api:libjingle_peerconnection_api", "../api:scoped_refptr", "../api:sequence_checker", @@ -496,7 +497,6 @@ if (is_ios || (is_mac && target_cpu != "x86")) { "../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 90bcfcc35b..996c6a9c7f 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 @@ void ObjCCallClient::CreatePeerConnectionFactory() { 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(dependencies.task_queue_factory.get()); pcf_ = webrtc::CreateModularPeerConnectionFactory(std::move(dependencies)); diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn index 4f5ceb5ed3..bff9b91680 100644 --- a/sdk/BUILD.gn +++ b/sdk/BUILD.gn @@ -1051,6 +1051,7 @@ if (is_ios || is_mac) { ":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 @@ if (is_ios || is_mac) { "../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 62b55543d4..15f9eb9ee4 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(); 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(dependencies.task_queue_factory.get()); dependencies.network_controller_factory = std::move(networkControllerFactory);