Diff
Modified: trunk/Source/ThirdParty/libwebrtc/ChangeLog (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/ChangeLog 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/ChangeLog 2017-02-08 22:26:57 UTC (rev 211902)
@@ -1,5 +1,30 @@
2017-02-08 Alex Christensen <[email protected]>
+ Fix libwebrtc build on iOS simulator
+ https://bugs.webkit.org/show_bug.cgi?id=168017
+
+ Reviewed by Tim Horton.
+
+ * Configurations/libwebrtc.xcconfig:
+ * Configurations/libwebrtcpcrtc.xcconfig:
+ Use $(inherited)
+ * Source/webrtc/modules/audio_device/ios/audio_device_ios.h:
+ * Source/webrtc/modules/audio_device/ios/audio_device_ios.mm:
+ * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Configuration.mm:
+ * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h:
+ * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.h:
+ * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm:
+ * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h:
+ * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m:
+ * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.h:
+ * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.mm:
+ Renamed RTCAudioSession* to WebRTCAudioSession* so that all ObjC classes in WebCore start with Web prefix.
+ * libwebrtc.xcodeproj/project.pbxproj:
+ Add necessary files. Some iOS-specific files need ARC,
+ and this matches the Build.gn in Source/webrtc/modules/audio_device
+
+2017-02-08 Alex Christensen <[email protected]>
+
Fix iOS libwebrtc build
https://bugs.webkit.org/show_bug.cgi?id=168004
Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig 2017-02-08 22:26:57 UTC (rev 211902)
@@ -13,11 +13,11 @@
USE_HEADERMAP = NO;
WARNING_CFLAGS = -Wno-exit-time-destructors -Wno-objc-property-no-attribute -Wno-objc-missing-super-calls -Wno-deprecated-declarations;
-BASE_PREPROCESSOR_DEFINITIONS = WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_CODEC_ILBC WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED RTC_DISABLE_VP9 RTC_DISABLE_VP8 HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE HAVE_SCTP;
+GCC_PREPROCESSOR_DEFINITIONS = WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_CODEC_ILBC WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED RTC_DISABLE_VP9 RTC_DISABLE_VP8 HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE HAVE_SCTP;
-GCC_PREPROCESSOR_DEFINITIONS[sdk=macosx*] = $(BASE_PREPROCESSOR_DEFINITIONS);
-GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*] = $(BASE_PREPROCESSOR_DEFINITIONS) WEBRTC_IOS;
-GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*] = $(BASE_PREPROCESSOR_DEFINITIONS) WEBRTC_IOS;
+GCC_PREPROCESSOR_DEFINITIONS[sdk=macosx*] = $(inherited);
+GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*] = $(inherited) WEBRTC_IOS;
+GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*] = $(inherited) WEBRTC_IOS;
EXCLUDED_SOURCE_FILE_NAMES[sdk=iphoneos*] = *_sse.cc *_sse2.cc macutils.cc macwindowpicker.cc audio_device_mac.cc;
EXCLUDED_SOURCE_FILE_NAMES[sdk=iphonesimulator*] = macutils.cc macwindowpicker.cc audio_device_mac.cc;
Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtcpcrtc.xcconfig (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtcpcrtc.xcconfig 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtcpcrtc.xcconfig 2017-02-08 22:26:57 UTC (rev 211902)
@@ -13,8 +13,8 @@
USE_HEADERMAP = NO;
WARNING_CFLAGS = -Wno-exit-time-destructors -Wno-objc-property-no-attribute -Wno-objc-missing-super-calls;
-BASE_PREPROCESSOR_DEFINITIONS = WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_CODEC_ILBC WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED RTC_DISABLE_VP9 RTC_DISABLE_VP8 HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE HAVE_SCTP;
+GCC_PREPROCESSOR_DEFINITIONS = WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_CODEC_ILBC WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED RTC_DISABLE_VP9 RTC_DISABLE_VP8 HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE HAVE_SCTP;
-GCC_PREPROCESSOR_DEFINITIONS[sdk=macosx*] = $(BASE_PREPROCESSOR_DEFINITIONS);
-GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*] = $(BASE_PREPROCESSOR_DEFINITIONS) WEBRTC_IOS;
-GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*] = $(BASE_PREPROCESSOR_DEFINITIONS) WEBRTC_IOS;
+GCC_PREPROCESSOR_DEFINITIONS[sdk=macosx*] = $(inherited);
+GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*] = $(inherited) WEBRTC_IOS;
+GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*] = $(inherited) WEBRTC_IOS;
Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/audio_device_ios.h (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/audio_device_ios.h 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/audio_device_ios.h 2017-02-08 22:26:57 UTC (rev 211902)
@@ -20,7 +20,7 @@
#include "webrtc/modules/audio_device/ios/audio_session_observer.h"
#include "webrtc/modules/audio_device/ios/voice_processing_audio_unit.h"
-RTC_FWD_DECL_OBJC_CLASS(RTCAudioSessionDelegateAdapter);
+RTC_FWD_DECL_OBJC_CLASS(WebRTCAudioSessionDelegateAdapter);
namespace webrtc {
@@ -288,7 +288,7 @@
bool is_interrupted_;
// Audio interruption observer instance.
- RTCAudioSessionDelegateAdapter* audio_session_observer_;
+ WebRTCAudioSessionDelegateAdapter* audio_session_observer_;
// Set to true if we've activated the audio session.
bool has_configured_session_;
Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/audio_device_ios.mm (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/audio_device_ios.mm 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/audio_device_ios.mm 2017-02-08 22:26:57 UTC (rev 211902)
@@ -104,7 +104,7 @@
LOGI() << "ctor" << ios::GetCurrentThreadDescription();
thread_ = rtc::Thread::Current();
audio_session_observer_ =
- [[RTCAudioSessionDelegateAdapter alloc] initWithObserver:this];
+ [[WebRTCAudioSessionDelegateAdapter alloc] initWithObserver:this];
}
AudioDeviceIOS::~AudioDeviceIOS() {
@@ -134,8 +134,8 @@
// here. They have not been set and confirmed yet since configureForWebRTC
// is not called until audio is about to start. However, it makes sense to
// store the parameters now and then verify at a later stage.
- RTCAudioSessionConfiguration* config =
- [RTCAudioSessionConfiguration webRTCConfiguration];
+ WebRTCAudioSessionConfiguration* config =
+ [WebRTCAudioSessionConfiguration webRTCConfiguration];
playout_parameters_.reset(config.sampleRate,
config.outputNumberOfChannels);
record_parameters_.reset(config.sampleRate,
@@ -267,7 +267,7 @@
int32_t AudioDeviceIOS::SetLoudspeakerStatus(bool enable) {
LOGI() << "SetLoudspeakerStatus(" << enable << ")";
- RTCAudioSession* session = [RTCAudioSession sharedInstance];
+ WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
[session lockForConfiguration];
NSString* category = session.category;
AVAudioSessionCategoryOptions options = session.categoryOptions;
@@ -294,7 +294,7 @@
int32_t AudioDeviceIOS::GetLoudspeakerStatus(bool& enabled) const {
LOGI() << "GetLoudspeakerStatus";
- RTCAudioSession* session = [RTCAudioSession sharedInstance];
+ WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
AVAudioSessionCategoryOptions options = session.categoryOptions;
enabled = options & AVAudioSessionCategoryOptionDefaultToSpeaker;
return 0;
@@ -368,7 +368,7 @@
static_cast<unsigned int>(frames_per_buffer),
static_cast<unsigned int>(num_frames));
- RTCAudioSession *session = [RTCAudioSession sharedInstance];
+ WebRTCAudioSession *session = [WebRTCAudioSession sharedInstance];
RTCLogWarning(@"Session:\n %@", session);
return result;
}
@@ -485,13 +485,13 @@
is_interrupted_ = false;
RTCLog(@"Interruption ended. Updating audio unit state.");
- UpdateAudioUnit([RTCAudioSession sharedInstance].canPlayOrRecord);
+ UpdateAudioUnit([WebRTCAudioSession sharedInstance].canPlayOrRecord);
}
void AudioDeviceIOS::HandleValidRouteChange() {
RTC_DCHECK(thread_checker_.CalledOnValidThread());
- RTCAudioSession* session = [RTCAudioSession sharedInstance];
+ WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
RTCLog(@"%@", session);
HandleSampleRateChange(session.sampleRate);
}
@@ -521,7 +521,7 @@
// The audio unit is already initialized or started.
// Check to see if the sample rate or buffer size has changed.
- RTCAudioSession* session = [RTCAudioSession sharedInstance];
+ WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
const double session_sample_rate = session.sampleRate;
const NSTimeInterval session_buffer_duration = session.IOBufferDuration;
const size_t session_frames_per_buffer =
@@ -591,7 +591,7 @@
void AudioDeviceIOS::SetupAudioBuffersForActiveAudioSession() {
LOGI() << "SetupAudioBuffersForActiveAudioSession";
// Verify the current values once the audio session has been activated.
- RTCAudioSession* session = [RTCAudioSession sharedInstance];
+ WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
double sample_rate = session.sampleRate;
NSTimeInterval io_buffer_duration = session.IOBufferDuration;
RTCLog(@"%@", session);
@@ -600,8 +600,8 @@
// hardware sample rate but continue and use the non-ideal sample rate after
// reinitializing the audio parameters. Most BT headsets only support 8kHz or
// 16kHz.
- RTCAudioSessionConfiguration* webRTCConfig =
- [RTCAudioSessionConfiguration webRTCConfiguration];
+ WebRTCAudioSessionConfiguration* webRTCConfig =
+ [WebRTCAudioSessionConfiguration webRTCConfiguration];
if (sample_rate != webRTCConfig.sampleRate) {
LOG(LS_WARNING) << "Unable to set the preferred sample rate";
}
@@ -731,7 +731,7 @@
if (should_start_audio_unit) {
RTCLog(@"Starting audio unit for UpdateAudioUnit");
// Log session settings before trying to start audio streaming.
- RTCAudioSession* session = [RTCAudioSession sharedInstance];
+ WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
RTCLog(@"%@", session);
if (!audio_unit_->Start()) {
RTCLogError(@"Failed to start audio unit.");
@@ -761,7 +761,7 @@
RTCLogWarning(@"Audio session already configured.");
return;
}
- RTCAudioSession* session = [RTCAudioSession sharedInstance];
+ WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
[session lockForConfiguration];
[session configureWebRTCSession:nil];
[session unlockForConfiguration];
@@ -776,7 +776,7 @@
RTCLogWarning(@"Audio session already unconfigured.");
return;
}
- RTCAudioSession* session = [RTCAudioSession sharedInstance];
+ WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
[session lockForConfiguration];
[session unconfigureWebRTCSession:nil];
[session unlockForConfiguration];
@@ -792,7 +792,7 @@
return false;
}
- RTCAudioSession* session = [RTCAudioSession sharedInstance];
+ WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
// Subscribe to audio session events.
[session pushDelegate:audio_session_observer_];
@@ -829,7 +829,7 @@
audio_unit_.reset();
// Remove audio session notification observers.
- RTCAudioSession* session = [RTCAudioSession sharedInstance];
+ WebRTCAudioSession* session = [WebRTCAudioSession sharedInstance];
[session removeDelegate:audio_session_observer_];
// All I/O should be stopped or paused prior to deactivating the audio
Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Configuration.mm (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Configuration.mm 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Configuration.mm 2017-02-08 22:26:57 UTC (rev 211902)
@@ -14,9 +14,9 @@
#import "webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h"
#import "webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h"
-@implementation RTCAudioSession (Configuration)
+@implementation WebRTCAudioSession (Configuration)
-- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration
+- (BOOL)setConfiguration:(WebRTCAudioSessionConfiguration *)configuration
error:(NSError **)outError {
return [self setConfiguration:configuration
active:NO
@@ -24,7 +24,7 @@
error:outError];
}
-- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration
+- (BOOL)setConfiguration:(WebRTCAudioSessionConfiguration *)configuration
active:(BOOL)active
error:(NSError **)outError {
return [self setConfiguration:configuration
@@ -35,7 +35,7 @@
#pragma mark - Private
-- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration
+- (BOOL)setConfiguration:(WebRTCAudioSessionConfiguration *)configuration
active:(BOOL)active
shouldSetActive:(BOOL)shouldSetActive
error:(NSError **)outError {
Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h 2017-02-08 22:26:57 UTC (rev 211902)
@@ -14,9 +14,9 @@
NS_ASSUME_NONNULL_BEGIN
-@class RTCAudioSessionConfiguration;
+@class WebRTCAudioSessionConfiguration;
-@interface RTCAudioSession ()
+@interface WebRTCAudioSession ()
/** Number of times setActive:YES has succeeded without a balanced call to
* setActive:NO.
@@ -42,9 +42,9 @@
* the list. This delegate will be notified before other delegates of
* audio events.
*/
-- (void)pushDelegate:(id<RTCAudioSessionDelegate>)delegate;
+- (void)pushDelegate:(id<WebRTCAudioSessionDelegate>)delegate;
-/** Signals RTCAudioSession that a WebRTC session is about to begin and
+/** Signals WebRTCAudioSession that a WebRTC session is about to begin and
* audio configuration is needed. Will configure the audio session for WebRTC
* if not already configured and if configuration is not delayed.
* Successful calls must be balanced by a call to endWebRTCSession.
@@ -51,7 +51,7 @@
*/
- (BOOL)beginWebRTCSession:(NSError **)outError;
-/** Signals RTCAudioSession that a WebRTC session is about to end and audio
+/** Signals WebRTCAudioSession that a WebRTC session is about to end and audio
* unconfiguration is needed. Will unconfigure the audio session for WebRTC
* if this is the last unmatched call and if configuration is not delayed.
*/
@@ -78,7 +78,7 @@
// Properties and methods for tests.
@property(nonatomic, readonly)
- std::vector<__weak id<RTCAudioSessionDelegate> > delegates;
+ std::vector<__weak id<WebRTCAudioSessionDelegate> > delegates;
- (void)notifyDidBeginInterruption;
- (void)notifyDidEndInterruptionWithShouldResumeSession:
Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.h (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.h 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.h 2017-02-08 22:26:57 UTC (rev 211902)
@@ -21,31 +21,31 @@
/** Unknown configuration error occurred. */
extern NSInteger const kRTCAudioSessionErrorConfiguration;
-@class RTCAudioSession;
-@class RTCAudioSessionConfiguration;
+@class WebRTCAudioSession;
+@class WebRTCAudioSessionConfiguration;
// Surfaces AVAudioSession events. WebRTC will listen directly for notifications
// from AVAudioSession and handle them before calling these delegate methods,
// at which point applications can perform additional processing if required.
RTC_EXPORT
-@protocol RTCAudioSessionDelegate <NSObject>
+@protocol WebRTCAudioSessionDelegate <NSObject>
@optional
/** Called on a system notification thread when AVAudioSession starts an
* interruption event.
*/
-- (void)audioSessionDidBeginInterruption:(RTCAudioSession *)session;
+- (void)audioSessionDidBeginInterruption:(WebRTCAudioSession *)session;
/** Called on a system notification thread when AVAudioSession ends an
* interruption event.
*/
-- (void)audioSessionDidEndInterruption:(RTCAudioSession *)session
+- (void)audioSessionDidEndInterruption:(WebRTCAudioSession *)session
shouldResumeSession:(BOOL)shouldResumeSession;
/** Called on a system notification thread when AVAudioSession changes the
* route.
*/
-- (void)audioSessionDidChangeRoute:(RTCAudioSession *)session
+- (void)audioSessionDidChangeRoute:(WebRTCAudioSession *)session
reason:(AVAudioSessionRouteChangeReason)reason
previousRoute:(AVAudioSessionRouteDescription *)previousRoute;
@@ -52,27 +52,27 @@
/** Called on a system notification thread when AVAudioSession media server
* terminates.
*/
-- (void)audioSessionMediaServicesWereLost:(RTCAudioSession *)session;
+- (void)audioSessionMediaServicesWereLost:(WebRTCAudioSession *)session;
/** Called on a system notification thread when AVAudioSession media server
* restarts.
*/
-- (void)audioSessionMediaServicesWereReset:(RTCAudioSession *)session;
+- (void)audioSessionMediaServicesWereReset:(WebRTCAudioSession *)session;
// TODO(tkchin): Maybe handle SilenceSecondaryAudioHintNotification.
-- (void)audioSession:(RTCAudioSession *)session
+- (void)audioSession:(WebRTCAudioSession *)session
didChangeCanPlayOrRecord:(BOOL)canPlayOrRecord;
/** Called on a WebRTC thread when the audio device is notified to begin
* playback or recording.
*/
-- (void)audioSessionDidStartPlayOrRecord:(RTCAudioSession *)session;
+- (void)audioSessionDidStartPlayOrRecord:(WebRTCAudioSession *)session;
/** Called on a WebRTC thread when the audio device is notified to stop
* playback or recording.
*/
-- (void)audioSessionDidStopPlayOrRecord:(RTCAudioSession *)session;
+- (void)audioSessionDidStopPlayOrRecord:(WebRTCAudioSession *)session;
@end
@@ -80,11 +80,11 @@
* AVCaptureDevice. This is used to that interleaving configurations between
* WebRTC and the application layer are avoided.
*
- * RTCAudioSession also coordinates activation so that the audio session is
+ * WebRTCAudioSession also coordinates activation so that the audio session is
* activated only once. See |setActive:error:|.
*/
RTC_EXPORT
-@interface RTCAudioSession : NSObject
+@interface WebRTCAudioSession : NSObject
/** Convenience property to access the AVAudioSession singleton. Callers should
* not call setters on AVAudioSession directly, but other method invocations
@@ -96,7 +96,7 @@
* AVAudioSession.
*/
@property(nonatomic, readonly) BOOL isActive;
-/** Whether RTCAudioSession is currently locked for configuration. */
+/** Whether WebRTCAudioSession is currently locked for configuration. */
@property(nonatomic, readonly) BOOL isLocked;
/** If YES, WebRTC will not initialize the audio unit automatically when an
@@ -154,9 +154,9 @@
- (instancetype)init NS_UNAVAILABLE;
/** Adds a delegate, which is held weakly. */
-- (void)addDelegate:(id<RTCAudioSessionDelegate>)delegate;
+- (void)addDelegate:(id<WebRTCAudioSessionDelegate>)delegate;
/** Removes an added delegate. */
-- (void)removeDelegate:(id<RTCAudioSessionDelegate>)delegate;
+- (void)removeDelegate:(id<WebRTCAudioSessionDelegate>)delegate;
/** Request exclusive access to the audio session for configuration. This call
* will block if the lock is held by another object.
@@ -202,7 +202,7 @@
@end
-@interface RTCAudioSession (Configuration)
+@interface WebRTCAudioSession (Configuration)
/** Applies the configuration to the current session. Attempts to set all
* properties even if previous ones fail. Only the last error will be
@@ -209,13 +209,13 @@
* returned.
* |lockForConfiguration| must be called first.
*/
-- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration
+- (BOOL)setConfiguration:(WebRTCAudioSessionConfiguration *)configuration
error:(NSError **)outError;
/** Convenience method that calls both setConfiguration and setActive.
* |lockForConfiguration| must be called first.
*/
-- (BOOL)setConfiguration:(RTCAudioSessionConfiguration *)configuration
+- (BOOL)setConfiguration:(WebRTCAudioSessionConfiguration *)configuration
active:(BOOL)active
error:(NSError **)outError;
Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm 2017-02-08 22:26:57 UTC (rev 211902)
@@ -21,7 +21,7 @@
#import "webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h"
#import "webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h"
-NSString * const kRTCAudioSessionErrorDomain = @"org.webrtc.RTCAudioSession";
+NSString * const kRTCAudioSessionErrorDomain = @"org.webrtc.WebRTCAudioSession";
NSInteger const kRTCAudioSessionErrorLockRequired = -1;
NSInteger const kRTCAudioSessionErrorConfiguration = -2;
@@ -28,7 +28,7 @@
// This class needs to be thread-safe because it is accessed from many threads.
// TODO(tkchin): Consider more granular locking. We're not expecting a lot of
// lock contention so coarse locks should be fine for now.
-@implementation RTCAudioSession {
+@implementation WebRTCAudioSession {
rtc::CriticalSection _crit;
AVAudioSession *_session;
volatile int _activationCount;
@@ -46,7 +46,7 @@
+ (instancetype)sharedInstance {
static dispatch_once_t onceToken;
- static RTCAudioSession *sharedInstance = nil;
+ static WebRTCAudioSession *sharedInstance = nil;
dispatch_once(&onceToken, ^{
sharedInstance = [[self alloc] init];
});
@@ -96,7 +96,7 @@
- (NSString *)description {
NSString *format =
- @"RTCAudioSession: {\n"
+ @"WebRTCAudioSession: {\n"
" category: %@\n"
" categoryOptions: %ld\n"
" mode: %@\n"
@@ -166,7 +166,7 @@
}
// TODO(tkchin): Check for duplicates.
-- (void)addDelegate:(id<RTCAudioSessionDelegate>)delegate {
+- (void)addDelegate:(id<WebRTCAudioSessionDelegate>)delegate {
if (!delegate) {
return;
}
@@ -176,7 +176,7 @@
}
}
-- (void)removeDelegate:(id<RTCAudioSessionDelegate>)delegate {
+- (void)removeDelegate:(id<WebRTCAudioSessionDelegate>)delegate {
if (!delegate) {
return;
}
@@ -563,7 +563,7 @@
return error;
}
-- (std::vector<__weak id<RTCAudioSessionDelegate> >)delegates {
+- (std::vector<__weak id<WebRTCAudioSessionDelegate> >)delegates {
@synchronized(self) {
// Note: this returns a copy.
return _delegates;
@@ -571,7 +571,7 @@
}
// TODO(tkchin): check for duplicates.
-- (void)pushDelegate:(id<RTCAudioSessionDelegate>)delegate {
+- (void)pushDelegate:(id<WebRTCAudioSessionDelegate>)delegate {
@synchronized(self) {
_delegates.insert(_delegates.begin(), delegate);
}
@@ -629,7 +629,7 @@
// acquire lock if it hasn't already been called.
if (!self.isLocked) {
if (outError) {
- *outError = [RTCAudioSession lockError];
+ *outError = [WebRTCAudioSession lockError];
}
return NO;
}
@@ -672,8 +672,8 @@
// Configure the AVAudioSession and activate it.
// Provide an error even if there isn't one so we can log it.
NSError *error = nil;
- RTCAudioSessionConfiguration *webRTCConfig =
- [RTCAudioSessionConfiguration webRTCConfiguration];
+ WebRTCAudioSessionConfiguration *webRTCConfig =
+ [WebRTCAudioSessionConfiguration webRTCConfiguration];
if (![self setConfiguration:webRTCConfig active:YES error:&error]) {
RTCLogError(@"Failed to set WebRTC audio configuration: %@",
error.localizedDescription);
Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h 2017-02-08 22:26:57 UTC (rev 211902)
@@ -23,7 +23,7 @@
// Struct to hold configuration values.
RTC_EXPORT
-@interface RTCAudioSessionConfiguration : NSObject
+@interface WebRTCAudioSessionConfiguration : NSObject
@property(nonatomic, strong) NSString *category;
@property(nonatomic, assign) AVAudioSessionCategoryOptions categoryOptions;
@@ -41,7 +41,7 @@
/** Returns the configuration that WebRTC needs. */
+ (instancetype)webRTCConfiguration;
/** Provide a way to override the default configuration. */
-+ (void)setWebRTCConfiguration:(RTCAudioSessionConfiguration *)configuration;
++ (void)setWebRTCConfiguration:(WebRTCAudioSessionConfiguration *)configuration;
@end
Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m 2017-02-08 22:26:57 UTC (rev 211902)
@@ -52,9 +52,9 @@
// TODO(henrika): monitor this size and determine if it should be modified.
const double kRTCAudioSessionLowComplexityIOBufferDuration = 0.06;
-static RTCAudioSessionConfiguration *gWebRTCConfiguration = nil;
+static WebRTCAudioSessionConfiguration *gWebRTCConfiguration = nil;
-@implementation RTCAudioSessionConfiguration
+@implementation WebRTCAudioSessionConfiguration
@synthesize category = _category;
@synthesize categoryOptions = _categoryOptions;
@@ -106,9 +106,9 @@
}
+ (instancetype)currentConfiguration {
- RTCAudioSession *session = [RTCAudioSession sharedInstance];
- RTCAudioSessionConfiguration *config =
- [[RTCAudioSessionConfiguration alloc] init];
+ WebRTCAudioSession *session = [WebRTCAudioSession sharedInstance];
+ WebRTCAudioSessionConfiguration *config =
+ [[WebRTCAudioSessionConfiguration alloc] init];
config.category = session.category;
config.categoryOptions = session.categoryOptions;
config.mode = session.mode;
@@ -121,11 +121,11 @@
+ (instancetype)webRTCConfiguration {
@synchronized(self) {
- return (RTCAudioSessionConfiguration *)gWebRTCConfiguration;
+ return (WebRTCAudioSessionConfiguration *)gWebRTCConfiguration;
}
}
-+ (void)setWebRTCConfiguration:(RTCAudioSessionConfiguration *)configuration {
++ (void)setWebRTCConfiguration:(WebRTCAudioSessionConfiguration *)configuration {
@synchronized(self) {
gWebRTCConfiguration = configuration;
}
Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.h (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.h 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.h 2017-02-08 22:26:57 UTC (rev 211902)
@@ -17,7 +17,7 @@
/** Adapter that forwards RTCAudioSessionDelegate calls to the appropriate
* methods on the AudioSessionObserver.
*/
-@interface RTCAudioSessionDelegateAdapter : NSObject <RTCAudioSessionDelegate>
+@interface WebRTCAudioSessionDelegateAdapter : NSObject <WebRTCAudioSessionDelegate>
- (instancetype)init NS_UNAVAILABLE;
Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.mm (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.mm 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.mm 2017-02-08 22:26:57 UTC (rev 211902)
@@ -14,7 +14,7 @@
#import "WebRTC/RTCLogging.h"
-@implementation RTCAudioSessionDelegateAdapter {
+@implementation WebRTCAudioSessionDelegateAdapter {
webrtc::AudioSessionObserver *_observer;
}
@@ -26,18 +26,18 @@
return self;
}
-#pragma mark - RTCAudioSessionDelegate
+#pragma mark - WebRTCAudioSessionDelegate
-- (void)audioSessionDidBeginInterruption:(RTCAudioSession *)session {
+- (void)audioSessionDidBeginInterruption:(WebRTCAudioSession *)session {
_observer->OnInterruptionBegin();
}
-- (void)audioSessionDidEndInterruption:(RTCAudioSession *)session
+- (void)audioSessionDidEndInterruption:(WebRTCAudioSession *)session
shouldResumeSession:(BOOL)shouldResumeSession {
_observer->OnInterruptionEnd();
}
-- (void)audioSessionDidChangeRoute:(RTCAudioSession *)session
+- (void)audioSessionDidChangeRoute:(WebRTCAudioSession *)session
reason:(AVAudioSessionRouteChangeReason)reason
previousRoute:(AVAudioSessionRouteDescription *)previousRoute {
switch (reason) {
@@ -64,21 +64,21 @@
}
}
-- (void)audioSessionMediaServicesWereLost:(RTCAudioSession *)session {
+- (void)audioSessionMediaServicesWereLost:(WebRTCAudioSession *)session {
}
-- (void)audioSessionMediaServicesWereReset:(RTCAudioSession *)session {
+- (void)audioSessionMediaServicesWereReset:(WebRTCAudioSession *)session {
}
-- (void)audioSession:(RTCAudioSession *)session
+- (void)audioSession:(WebRTCAudioSession *)session
didChangeCanPlayOrRecord:(BOOL)canPlayOrRecord {
_observer->OnCanPlayOrRecordChange(canPlayOrRecord);
}
-- (void)audioSessionDidStartPlayOrRecord:(RTCAudioSession *)session {
+- (void)audioSessionDidStartPlayOrRecord:(WebRTCAudioSession *)session {
}
-- (void)audioSessionDidStopPlayOrRecord:(RTCAudioSession *)session {
+- (void)audioSessionDidStopPlayOrRecord:(WebRTCAudioSession *)session {
}
@end
Modified: trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj (211901 => 211902)
--- trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj 2017-02-08 22:04:38 UTC (rev 211901)
+++ trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj 2017-02-08 22:26:57 UTC (rev 211902)
@@ -2469,18 +2469,19 @@
5CDD90831E43D15C00621E92 /* nonlinear_beamformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CDD90731E43D15C00621E92 /* nonlinear_beamformer.h */; };
5CFD53601E4BA34B00482908 /* helpers_ios.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD535F1E4BA34B00482908 /* helpers_ios.mm */; };
5CFD536C1E4BA4DC00482908 /* RTCAudioSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53631E4BA4DC00482908 /* RTCAudioSession.h */; };
- 5CFD536D1E4BA4DC00482908 /* RTCAudioSession.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53641E4BA4DC00482908 /* RTCAudioSession.mm */; };
- 5CFD536E1E4BA4DC00482908 /* RTCAudioSession+Configuration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53651E4BA4DC00482908 /* RTCAudioSession+Configuration.mm */; };
+ 5CFD536D1E4BA4DC00482908 /* RTCAudioSession.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53641E4BA4DC00482908 /* RTCAudioSession.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 5CFD536E1E4BA4DC00482908 /* RTCAudioSession+Configuration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53651E4BA4DC00482908 /* RTCAudioSession+Configuration.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
5CFD536F1E4BA4DC00482908 /* RTCAudioSession+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53661E4BA4DC00482908 /* RTCAudioSession+Private.h */; };
5CFD53701E4BA4DC00482908 /* RTCAudioSessionConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53671E4BA4DC00482908 /* RTCAudioSessionConfiguration.h */; };
- 5CFD53711E4BA4DC00482908 /* RTCAudioSessionConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53681E4BA4DC00482908 /* RTCAudioSessionConfiguration.m */; };
+ 5CFD53711E4BA4DC00482908 /* RTCAudioSessionConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53681E4BA4DC00482908 /* RTCAudioSessionConfiguration.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
5CFD53721E4BA4DC00482908 /* RTCAudioSessionDelegateAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53691E4BA4DC00482908 /* RTCAudioSessionDelegateAdapter.h */; };
- 5CFD53731E4BA4DC00482908 /* RTCAudioSessionDelegateAdapter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD536A1E4BA4DC00482908 /* RTCAudioSessionDelegateAdapter.mm */; };
+ 5CFD53731E4BA4DC00482908 /* RTCAudioSessionDelegateAdapter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD536A1E4BA4DC00482908 /* RTCAudioSessionDelegateAdapter.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
5CFD537C1E4BA4F500482908 /* audio_device_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53751E4BA4F500482908 /* audio_device_ios.h */; };
5CFD537D1E4BA4F500482908 /* audio_device_ios.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53761E4BA4F500482908 /* audio_device_ios.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
5CFD53801E4BA4F500482908 /* audio_session_observer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53791E4BA4F500482908 /* audio_session_observer.h */; };
5CFD53811E4BA4F500482908 /* voice_processing_audio_unit.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD537A1E4BA4F500482908 /* voice_processing_audio_unit.h */; };
- 5CFD53821E4BA4F500482908 /* voice_processing_audio_unit.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD537B1E4BA4F500482908 /* voice_processing_audio_unit.mm */; };
+ 5CFD53821E4BA4F500482908 /* voice_processing_audio_unit.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD537B1E4BA4F500482908 /* voice_processing_audio_unit.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 5CFD53841E4BBD8D00482908 /* audio_device_not_implemented_ios.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5CFD53831E4BBD8D00482908 /* audio_device_not_implemented_ios.mm */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -5184,6 +5185,7 @@
5CFD53791E4BA4F500482908 /* audio_session_observer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_session_observer.h; sourceTree = "<group>"; };
5CFD537A1E4BA4F500482908 /* voice_processing_audio_unit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = voice_processing_audio_unit.h; sourceTree = "<group>"; };
5CFD537B1E4BA4F500482908 /* voice_processing_audio_unit.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = voice_processing_audio_unit.mm; sourceTree = "<group>"; };
+ 5CFD53831E4BBD8D00482908 /* audio_device_not_implemented_ios.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = audio_device_not_implemented_ios.mm; sourceTree = "<group>"; };
5D7C59C51208C68B001C873E /* libwebrtc.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = libwebrtc.xcconfig; sourceTree = "<group>"; };
5D7C59C61208C68B001C873E /* Base.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Base.xcconfig; sourceTree = "<group>"; };
5D7C59C71208C68B001C873E /* DebugRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = DebugRelease.xcconfig; sourceTree = "<group>"; };
@@ -9130,6 +9132,7 @@
5CFD53621E4BA4C600482908 /* objc */,
5CFD53751E4BA4F500482908 /* audio_device_ios.h */,
5CFD53761E4BA4F500482908 /* audio_device_ios.mm */,
+ 5CFD53831E4BBD8D00482908 /* audio_device_not_implemented_ios.mm */,
5CFD53791E4BA4F500482908 /* audio_session_observer.h */,
5CFD537A1E4BA4F500482908 /* voice_processing_audio_unit.h */,
5CFD537B1E4BA4F500482908 /* voice_processing_audio_unit.mm */,
@@ -11208,6 +11211,7 @@
5C11A0001E457400004F0987 /* audio_device_impl.cc in Sources */,
5CFD537D1E4BA4F500482908 /* audio_device_ios.mm in Sources */,
5C11A00B1E457448004F0987 /* audio_device_mac.cc in Sources */,
+ 5CFD53841E4BBD8D00482908 /* audio_device_not_implemented_ios.mm in Sources */,
5CDD84171E439B2900621E92 /* audio_encoder.cc in Sources */,
5CDD8CA71E43C6F700621E92 /* audio_encoder_cng.cc in Sources */,
5CDD8FF31E43CDF400621E92 /* audio_encoder_copy_red.cc in Sources */,