From 6124aacd9831284902b4ea2cfabda1050c1c1bf6 Mon Sep 17 00:00:00 2001 From: Sam Zackrisson Date: Mon, 13 Nov 2017 14:56:02 +0100 Subject: [PATCH] Add AudioProcessing parameter to RTCPeerConnectionFactory native constructor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows Objective C(++) users to supply their own implementations of the webrtc::AudioProcessing module. Bug: webrtc:8163 Change-Id: I2302610c9b45b2f483146d6fe7d82be419b33ee2 Reviewed-on: https://webrtc-review.googlesource.com/18180 Reviewed-by: Kári Helgason Commit-Queue: Sam Zackrisson Cr-Commit-Position: refs/heads/master@{#20668} --- .../PeerConnection/RTCPeerConnectionFactory+Native.h | 5 ++++- .../Classes/PeerConnection/RTCPeerConnectionFactory.mm | 10 ++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h b/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h index c9a42bd5fd..32e23903b0 100644 --- a/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h +++ b/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory+Native.h @@ -19,6 +19,7 @@ class AudioEncoderFactory; class AudioDecoderFactory; class VideoEncoderFactory; class VideoDecoderFactory; +class AudioProcessing; } // namespace webrtc @@ -51,7 +52,9 @@ NS_ASSUME_NONNULL_BEGIN nativeVideoDecoderFactory: (std::unique_ptr)videoDecoderFactory audioDeviceModule: - (nullable webrtc::AudioDeviceModule *)audioDeviceModule; + (nullable webrtc::AudioDeviceModule *)audioDeviceModule + audioProcessingModule: + (rtc::scoped_refptr)audioProcessingModule; /* Initialize object with legacy injectable native audio/video encoder/decoder factories TODO(andersc): Remove this when backwards compatiblity is no longer needed. diff --git a/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm b/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm index 102a150c97..7a102c45f1 100644 --- a/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm +++ b/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm @@ -84,7 +84,8 @@ nativeAudioDecoderFactory:webrtc::CreateBuiltinAudioDecoderFactory() nativeVideoEncoderFactory:std::move(native_encoder_factory) nativeVideoDecoderFactory:std::move(native_decoder_factory) - audioDeviceModule:nullptr]; + audioDeviceModule:nullptr + audioProcessingModule:nullptr]; #endif } @@ -128,7 +129,9 @@ nativeVideoDecoderFactory: (std::unique_ptr)videoDecoderFactory audioDeviceModule: - (nullable webrtc::AudioDeviceModule *)audioDeviceModule { + (nullable webrtc::AudioDeviceModule *)audioDeviceModule + audioProcessingModule: + (rtc::scoped_refptr)audioProcessingModule { #ifdef HAVE_NO_MEDIA return [self initWithNoMedia]; #else @@ -142,8 +145,7 @@ std::move(videoEncoderFactory), std::move(videoDecoderFactory), nullptr, // audio mixer - nullptr // audio processing - ); + audioProcessingModule); NSAssert(_nativeFactory, @"Failed to initialize PeerConnectionFactory!"); } return self;