Allow injection of network controller factory in objc.
Bug: webrtc:9155
Change-Id: I2176b714fdca41239b3d6e3a7b2634f93714e835
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133572
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27701}
diff --git a/sdk/objc/api/peerconnection/RTCPeerConnectionFactory+Native.h b/sdk/objc/api/peerconnection/RTCPeerConnectionFactory+Native.h
index be68f3f..7a57645 100644
--- a/sdk/objc/api/peerconnection/RTCPeerConnectionFactory+Native.h
+++ b/sdk/objc/api/peerconnection/RTCPeerConnectionFactory+Native.h
@@ -18,6 +18,7 @@
class AudioEncoderFactory;
class AudioDecoderFactory;
class MediaTransportFactory;
+class NetworkControllerFactoryInterface;
class VideoEncoderFactory;
class VideoDecoderFactory;
class AudioProcessing;
@@ -65,6 +66,23 @@
mediaTransportFactory:
(std::unique_ptr<webrtc::MediaTransportFactory>)mediaTransportFactory;
+- (instancetype)
+ initWithNativeAudioEncoderFactory:
+ (rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
+ nativeAudioDecoderFactory:
+ (rtc::scoped_refptr<webrtc::AudioDecoderFactory>)audioDecoderFactory
+ nativeVideoEncoderFactory:
+ (std::unique_ptr<webrtc::VideoEncoderFactory>)videoEncoderFactory
+ nativeVideoDecoderFactory:
+ (std::unique_ptr<webrtc::VideoDecoderFactory>)videoDecoderFactory
+ audioDeviceModule:(nullable webrtc::AudioDeviceModule *)audioDeviceModule
+ audioProcessingModule:
+ (rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule
+ networkControllerFactory:(std::unique_ptr<webrtc::NetworkControllerFactoryInterface>)
+ networkControllerFactory
+ mediaTransportFactory:
+ (std::unique_ptr<webrtc::MediaTransportFactory>)mediaTransportFactory;
+
- (instancetype)initWithEncoderFactory:(nullable id<RTCVideoEncoderFactory>)encoderFactory
decoderFactory:(nullable id<RTCVideoDecoderFactory>)decoderFactory
mediaTransportFactory:
diff --git a/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm b/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
index c1d0a32..18d211f 100644
--- a/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
+++ b/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm
@@ -159,8 +159,7 @@
(std::unique_ptr<webrtc::VideoEncoderFactory>)videoEncoderFactory
nativeVideoDecoderFactory:
(std::unique_ptr<webrtc::VideoDecoderFactory>)videoDecoderFactory
- audioDeviceModule:
- (nullable webrtc::AudioDeviceModule *)audioDeviceModule
+ audioDeviceModule:(webrtc::AudioDeviceModule *)audioDeviceModule
audioProcessingModule:
(rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule {
return [self initWithNativeAudioEncoderFactory:audioEncoderFactory
@@ -172,20 +171,44 @@
mediaTransportFactory:nullptr];
}
-- (instancetype)
- initWithNativeAudioEncoderFactory:
- (rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
- nativeAudioDecoderFactory:
- (rtc::scoped_refptr<webrtc::AudioDecoderFactory>)audioDecoderFactory
- nativeVideoEncoderFactory:
- (std::unique_ptr<webrtc::VideoEncoderFactory>)videoEncoderFactory
- nativeVideoDecoderFactory:
- (std::unique_ptr<webrtc::VideoDecoderFactory>)videoDecoderFactory
- audioDeviceModule:(nullable webrtc::AudioDeviceModule *)audioDeviceModule
- audioProcessingModule:
- (rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule
- mediaTransportFactory:
- (std::unique_ptr<webrtc::MediaTransportFactory>)mediaTransportFactory {
+- (instancetype)initWithNativeAudioEncoderFactory:
+ (rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
+ nativeAudioDecoderFactory:
+ (rtc::scoped_refptr<webrtc::AudioDecoderFactory>)audioDecoderFactory
+ nativeVideoEncoderFactory:
+ (std::unique_ptr<webrtc::VideoEncoderFactory>)videoEncoderFactory
+ nativeVideoDecoderFactory:
+ (std::unique_ptr<webrtc::VideoDecoderFactory>)videoDecoderFactory
+ audioDeviceModule:(webrtc::AudioDeviceModule *)audioDeviceModule
+ audioProcessingModule:
+ (rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule
+ mediaTransportFactory:(std::unique_ptr<webrtc::MediaTransportFactory>)
+ mediaTransportFactory {
+ return [self initWithNativeAudioEncoderFactory:audioEncoderFactory
+ nativeAudioDecoderFactory:audioDecoderFactory
+ nativeVideoEncoderFactory:std::move(videoEncoderFactory)
+ nativeVideoDecoderFactory:std::move(videoDecoderFactory)
+ audioDeviceModule:audioDeviceModule
+ audioProcessingModule:audioProcessingModule
+ networkControllerFactory:nullptr
+ mediaTransportFactory:std::move(mediaTransportFactory)];
+}
+- (instancetype)initWithNativeAudioEncoderFactory:
+ (rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
+ nativeAudioDecoderFactory:
+ (rtc::scoped_refptr<webrtc::AudioDecoderFactory>)audioDecoderFactory
+ nativeVideoEncoderFactory:
+ (std::unique_ptr<webrtc::VideoEncoderFactory>)videoEncoderFactory
+ nativeVideoDecoderFactory:
+ (std::unique_ptr<webrtc::VideoDecoderFactory>)videoDecoderFactory
+ audioDeviceModule:(webrtc::AudioDeviceModule *)audioDeviceModule
+ audioProcessingModule:
+ (rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule
+ networkControllerFactory:
+ (std::unique_ptr<webrtc::NetworkControllerFactoryInterface>)
+ networkControllerFactory
+ mediaTransportFactory:(std::unique_ptr<webrtc::MediaTransportFactory>)
+ mediaTransportFactory {
#ifdef HAVE_NO_MEDIA
return [self initWithNoMedia];
#else
@@ -212,6 +235,7 @@
dependencies.media_engine = std::move(media_engine);
dependencies.call_factory = std::move(call_factory);
dependencies.event_log_factory = std::move(event_log_factory);
+ dependencies.network_controller_factory = std::move(networkControllerFactory);
dependencies.media_transport_factory = std::move(mediaTransportFactory);
_nativeFactory = webrtc::CreateModularPeerConnectionFactory(std::move(dependencies));
NSAssert(_nativeFactory, @"Failed to initialize PeerConnectionFactory!");