53
53
#include " sdk/objc/native/src/objc_video_decoder_factory.h"
54
54
#include " sdk/objc/native/src/objc_video_encoder_factory.h"
55
55
56
+ #import " components/audio/RTCAudioProcessingModule.h"
57
+ #import " components/audio/RTCDefaultAudioProcessingModule+Private.h"
58
+
56
59
#if defined(WEBRTC_IOS)
57
60
#import " sdk/objc/native/api/audio_device_module.h"
58
61
#endif
@@ -62,6 +65,7 @@ @implementation RTC_OBJC_TYPE (RTCPeerConnectionFactory) {
62
65
std::unique_ptr<rtc::Thread> _workerThread;
63
66
std::unique_ptr<rtc::Thread> _signalingThread;
64
67
rtc::scoped_refptr<webrtc::AudioDeviceModule> _nativeAudioDeviceModule;
68
+ RTCDefaultAudioProcessingModule *_defaultAudioProcessingModule;
65
69
66
70
BOOL _hasStartedAecDump;
67
71
}
@@ -144,8 +148,9 @@ - (instancetype)init {
144
148
- (instancetype )
145
149
initWithBypassVoiceProcessing:(BOOL )bypassVoiceProcessing
146
150
encoderFactory : (nullable id <RTC_OBJC_TYPE(RTCVideoEncoderFactory)>)encoderFactory
147
- decoderFactory :
148
- (nullable id <RTC_OBJC_TYPE(RTCVideoDecoderFactory)>)decoderFactory {
151
+ decoderFactory : (nullable id <RTC_OBJC_TYPE(RTCVideoDecoderFactory)>)decoderFactory
152
+ audioProcessingModule :
153
+ (nullable id <RTC_OBJC_TYPE(RTCAudioProcessingModule)>)audioProcessingModule {
149
154
#ifdef HAVE_NO_MEDIA
150
155
return [self initWithNoMedia ];
151
156
#else
@@ -158,12 +163,21 @@ - (instancetype)init {
158
163
native_decoder_factory = webrtc::ObjCToNativeVideoDecoderFactory (decoderFactory);
159
164
}
160
165
rtc::scoped_refptr<webrtc::AudioDeviceModule> audio_device_module = [self createAudioDeviceModule: bypassVoiceProcessing];
166
+
167
+ if ([audioProcessingModule isKindOfClass: [RTCDefaultAudioProcessingModule class ]]) {
168
+ _defaultAudioProcessingModule = (RTCDefaultAudioProcessingModule *)audioProcessingModule;
169
+ } else {
170
+ _defaultAudioProcessingModule = [[RTCDefaultAudioProcessingModule alloc ] init ];
171
+ }
172
+
173
+ NSLog (@" AudioProcessingModule: %@ " , _defaultAudioProcessingModule);
174
+
161
175
return [self initWithNativeAudioEncoderFactory: webrtc: :CreateBuiltinAudioEncoderFactory ()
162
176
nativeAudioDecoderFactory:webrtc: :CreateBuiltinAudioDecoderFactory ()
163
177
nativeVideoEncoderFactory:std: :move (native_encoder_factory)
164
178
nativeVideoDecoderFactory:std: :move (native_decoder_factory)
165
179
audioDeviceModule: audio_device_module.get ()
166
- audioProcessingModule: nullptr
180
+ audioProcessingModule: _defaultAudioProcessingModule.nativeAudioProcessingModule
167
181
bypassVoiceProcessing: bypassVoiceProcessing];
168
182
#endif
169
183
}
0 commit comments