I tried about a gazillion different things and found exactly one change that makes the problem go away.
In the midst of setting up the AVCaptureSession, there was a property assignment to set the frame rate (assign to AVCaptureConnection.videoMinFrameDuration) which
is deprecated but still present. Remove that assignment, everything works.
Note that the original symptom is that the *audio* crashes, and the cause is in the setup of the *video* session. It turns out that while the audio
initialization crashed the program, if I got around that (e.g. the 10% of the time it didn’t crash), the video capture didn’t work – the program didn’t crash, but no video was captured.
I’ve considered random scribbling in memory someplace from my application since I began this investigation. Evidence does not support that theory, although it
cannot (being practical) be disproven.
The need for weeks of experimentation when APIs change, and the rapid pace of API change, are not giving me a positive feeling toward Apple. It’s sad, because
they do a lot of really good stuff.
Steven J. Clark
VGo Communications
From: R_Adams [mailto:email@hidden]
Sent: Wednesday, October 29, 2014 2:41 PM
To: Steven Clark
Cc: email@hidden
Subject: Re: App works on iOS 7.1, fails on iOS 8.1
I’ve discovered that some upgrades from 8.0 to 8.1 may leave the keyboard in a state where geometry is invalid and dismiss animation is missing. If you are doing any animation or view positioning base on the keyboard, turn “OFF” split
keyboard in settings.
On Oct 29, 2014, at 12:30 PM, Steven Clark <email@hidden> wrote:
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.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
|