I have an overly complicated VOIP app that I recently upgraded from targeting iOS 7.1 to iOS 8.1. When built for 8.1, it runs fine on iOS 7.x but dies about 90% of the time on iOS 8.1.
It contains a single VPIO Audio Unit. The call AudioOutputUnitStart() fails, returning -50 – which is, according to macerror, “error in user parameter list”. Sometimes, I see the following line in the output when it fails:
2014-10-29 14:08:21.879 VGo Test 3[2145:888062] 14:08:21.878 ERROR: [0x331649dc] >aurioc> 806: failed: -50 (enable 3, outf< 1 ch, 16000 Hz, Int16> inf< 1 ch, 16000 Hz, Int16>)
I can decipher the channel formats, and they are what I set for the application side of the VPIO unit. Does anyone have a clue what “>aurioc> 806” means? I got nothing useful with Google.
When it works, everything seems to be fine. I haven’t been able to find anything different between when it works and when it doesn’t.
I threw in some code to print out a bunch of the Audio Unit’s properties just before calling AudioOutputUnitStart(), and everything looks fine except kAUVoiceIOProperty_VoiceProcessingEnableAGC. AudioUnitGetProperty() returns -50 when
getting this property, when and only when AudioOutputUnitStart() also returns -50. About 9 other properties are all fine, though.
I’ve tried instantiating a new VPIO Audio Unit when AudioOutputUnitStart() fails. Its properties, including EnableAGC, all print out fine, and then the app crashes.
If you don’t have any ideas related to these problems, perhaps you might know of any Core Audio changes between 7.x and 8.1? I found nothing interesting in the official Apple release notes.
Thank you very much,
Steven J. Clark
VGo Communications