From 779c9dede9055823f306032293deac1a8798ef4c Mon Sep 17 00:00:00 2001 From: Danil Chapovalov Date: Thu, 2 Nov 2023 17:29:21 +0100 Subject: [PATCH] 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 Commit-Queue: Danil Chapovalov Cr-Commit-Position: refs/heads/main@{#41069} --- api/BUILD.gn | 4 +-- api/create_peerconnection_factory.cc | 30 +++++++------------ sdk/android/BUILD.gn | 3 +- .../src/jni/pc/peer_connection_factory.cc | 29 ++++++------------ 4 files changed, 22 insertions(+), 44 deletions(-) diff --git a/api/BUILD.gn b/api/BUILD.gn index 4aac6e8b5b..5bc33eb2bc 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn @@ -83,12 +83,10 @@ if (!build_with_chromium) { "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 ca1369d416..5d3aace05f 100644 --- a/api/create_peerconnection_factory.cc +++ b/api/create_peerconnection_factory.cc @@ -13,14 +13,12 @@ #include #include -#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 @@ rtc::scoped_refptr CreatePeerConnectionFactory( dependencies.signaling_thread = signaling_thread; dependencies.task_queue_factory = CreateDefaultTaskQueueFactory(field_trials.get()); - dependencies.call_factory = CreateCallFactory(); dependencies.event_log_factory = std::make_unique( dependencies.task_queue_factory.get()); dependencies.trials = std::move(field_trials); @@ -59,24 +56,19 @@ rtc::scoped_refptr CreatePeerConnectionFactory( // 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 b412d2f6a9..7a3b8c1e56 100644 --- a/sdk/android/BUILD.gn +++ b/sdk/android/BUILD.gn @@ -768,8 +768,8 @@ if (current_os == "linux" || is_android) { ":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 @@ if (current_os == "linux" || is_android) { "../../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 c6099c2736..4d2a41355c 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 #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 @@ ScopedJavaLocalRef CreatePeerConnectionFactoryForJava( 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( dependencies.task_queue_factory.get()); dependencies.fec_controller_factory = std::move(fec_controller_factory); @@ -290,18 +282,15 @@ ScopedJavaLocalRef CreatePeerConnectionFactoryForJava( std::make_unique(); } - 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 factory = CreateModularPeerConnectionFactory(std::move(dependencies));