mumble-voip / mumblekit

Objective-C-based Mumble client framework for iOS and Mac OS X
http://mumble-voip.github.com/mumblekit/
BSD 3-Clause "New" or "Revised" License
154 stars 70 forks source link

Do not set kAUVoiceIOProperty_VoiceProcessingQuality on audio unit #34

Closed emiliopavia closed 7 years ago

emiliopavia commented 9 years ago

That code disable echo cancellation when building MumbleKit for iOS 7+ with the latest version of Xcode. As kAUVoiceIOProperty_VoiceProcessingQuality is marked as deprecated since iOS 6, I consider safe to remove that code (btw we're already using MumbleKit in production without that).

Moreover I set SKIP_INSTALL to YES to the iOS libraries to make Archive working in Xcode.

mkrautz commented 9 years ago

Sorry I hadn't responded before.

I can't accept this, since Mumble for iOS and MumbleKit build and run on iOS 5.

emiliopavia commented 9 years ago

Why do you check !DeviceIsRunningiOS7OrGreater() only #if __IPHONE_OS_VERSION_MAX_ALLOWED <= 60100? That check is stripped out by compiling with the latest iOS SDK, so that property is always set.

mkrautz commented 9 years ago

Oops. Sorry.

As the comment says:

// When running Mumble built with the iOS 6.1 SDK, built using Xcode 4.6.3 on iOS 7,        
// we sometimes get zero samples from the VPIO Audio Unit.  When building with Xcode 5      
// against the iOS 7 SDK, everything is OK, though.

That's the reason for the SDK check.

However, I think that since the property is deprecated, gating the code that sets the quality to low with if DeviceIsRunningiOS7OrGreater() should be better. That way, iOS 7+ will not have the property set, and iOS 5 and 6 will use low quality.

emiliopavia commented 9 years ago

The problem we had is that, as is, echo cancelation doesn't work when building with the latest Xcode.

mkrautz commented 7 years ago

Landed via https://github.com/mumble-voip/mumblekit/pull/58.