From e5c426561911602a2cd8c763a4f7a04c4cde2c97 Mon Sep 17 00:00:00 2001 From: Sean Rosenbaum Date: Mon, 30 Oct 2017 07:50:17 -0700 Subject: [PATCH] Allow external audio device module to be passed in to the objc peer connection factory interface. Bug: webrtc:8466 Change-Id: I87091cb32206f5f3bed310ec23963bcc053c59db Reviewed-on: https://webrtc-review.googlesource.com/16734 Reviewed-by: Magnus Jedvert Reviewed-by: Henrik Andreassson Commit-Queue: Sean Rosenbaum Cr-Commit-Position: refs/heads/master@{#20479} --- .../RTCPeerConnectionFactory+Native.h | 8 ++++++-- .../PeerConnection/RTCPeerConnectionFactory.mm | 18 ++++++++++++------ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h b/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h index 5763151087..c9a42bd5fd 100644 --- a/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h +++ b/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h @@ -14,6 +14,7 @@ namespace webrtc { +class AudioDeviceModule; class AudioEncoderFactory; class AudioDecoderFactory; class VideoEncoderFactory; @@ -48,7 +49,9 @@ NS_ASSUME_NONNULL_BEGIN nativeVideoEncoderFactory: (std::unique_ptr)videoEncoderFactory nativeVideoDecoderFactory: - (std::unique_ptr)videoDecoderFactory; + (std::unique_ptr)videoDecoderFactory + audioDeviceModule: + (nullable webrtc::AudioDeviceModule *)audioDeviceModule; /* Initialize object with legacy injectable native audio/video encoder/decoder factories TODO(andersc): Remove this when backwards compatiblity is no longer needed. @@ -59,7 +62,8 @@ NS_ASSUME_NONNULL_BEGIN nativeAudioDecoderFactory: (rtc::scoped_refptr)audioDecoderFactory legacyNativeVideoEncoderFactory:(cricket::WebRtcVideoEncoderFactory*)videoEncoderFactory - legacyNativeVideoDecoderFactory:(cricket::WebRtcVideoDecoderFactory*)videoDecoderFactory; + legacyNativeVideoDecoderFactory:(cricket::WebRtcVideoDecoderFactory*)videoDecoderFactory + audioDeviceModule:(nullable webrtc::AudioDeviceModule *)audioDeviceModule; @end diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm b/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm index 34d21a56f4..102a150c97 100644 --- a/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm +++ b/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm @@ -61,7 +61,9 @@ legacyNativeVideoEncoderFactory:new webrtc::ObjCVideoEncoderFactory( [[RTCVideoEncoderFactoryH264 alloc] init]) legacyNativeVideoDecoderFactory:new webrtc::ObjCVideoDecoderFactory( - [[RTCVideoDecoderFactoryH264 alloc] init])]; + [[RTCVideoDecoderFactoryH264 alloc] init]) + audioDeviceModule:nullptr]; + #endif } @@ -81,7 +83,8 @@ return [self initWithNativeAudioEncoderFactory:webrtc::CreateBuiltinAudioEncoderFactory() nativeAudioDecoderFactory:webrtc::CreateBuiltinAudioDecoderFactory() nativeVideoEncoderFactory:std::move(native_encoder_factory) - nativeVideoDecoderFactory:std::move(native_decoder_factory)]; + nativeVideoDecoderFactory:std::move(native_decoder_factory) + audioDeviceModule:nullptr]; #endif } @@ -123,7 +126,9 @@ nativeVideoEncoderFactory: (std::unique_ptr)videoEncoderFactory nativeVideoDecoderFactory: - (std::unique_ptr)videoDecoderFactory { + (std::unique_ptr)videoDecoderFactory + audioDeviceModule: + (nullable webrtc::AudioDeviceModule *)audioDeviceModule { #ifdef HAVE_NO_MEDIA return [self initWithNoMedia]; #else @@ -131,7 +136,7 @@ _nativeFactory = webrtc::CreatePeerConnectionFactory(_networkThread.get(), _workerThread.get(), _signalingThread.get(), - nullptr, // audio device module + audioDeviceModule, audioEncoderFactory, audioDecoderFactory, std::move(videoEncoderFactory), @@ -151,7 +156,8 @@ nativeAudioDecoderFactory: (rtc::scoped_refptr)audioDecoderFactory legacyNativeVideoEncoderFactory:(cricket::WebRtcVideoEncoderFactory *)videoEncoderFactory - legacyNativeVideoDecoderFactory:(cricket::WebRtcVideoDecoderFactory *)videoDecoderFactory { + legacyNativeVideoDecoderFactory:(cricket::WebRtcVideoDecoderFactory *)videoDecoderFactory + audioDeviceModule:(nullable webrtc::AudioDeviceModule *)audioDeviceModule { #ifdef HAVE_NO_MEDIA return [self initWithNoMedia]; #else @@ -159,7 +165,7 @@ _nativeFactory = webrtc::CreatePeerConnectionFactory(_networkThread.get(), _workerThread.get(), _signalingThread.get(), - nullptr, // audio device module + audioDeviceModule, audioEncoderFactory, audioDecoderFactory, videoEncoderFactory,