why is ExtAudioFileSetProperty raises c++ exception?
why is ExtAudioFileSetProperty raises c++ exception?
- Subject: why is ExtAudioFileSetProperty raises c++ exception?
- From: Andy Davidson <email@hidden>
- Date: Wed, 19 Jul 2017 15:30:03 -0700
- Thread-topic: why is ExtAudioFileSetProperty raises c++ exception?
While working on some new UI functionality in IOS 10.x. I discovered some
ObjC audio code written years ago is raising c++ exception. I found this by
setting a break point in all exceptions in Xcode. I even if I clear all the
break points I am not able to run my app from Xcode. The app seems to work
if I run it stand alone (i.e. Not connected to Xcode).
Does anyone know how I can catch c++ exceptions in the middle of my objc ?
Here is a back trace
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.2
frame #0: 0x000000018be82e70 libc++abi.dylib`__cxa_throw
frame #1: 0x00000001a21e872c
AudioCodecs`ACBaseCodec::GetPropertyInfo(unsigned int, unsigned int&,
unsigned char&) + 592
frame #2: 0x00000001a20cd808 AudioCodecs`GetPropertyInfo(void*, unsigned
int, unsigned int*, unsigned char*) + 44
frame #3: 0x00000001903af664
AudioToolbox`CodecConverter::CodecSupportsProperty(unsigned int) + 32
frame #4: 0x00000001902f2e38
AudioToolbox`AudioConverterChain::SetProperty(unsigned int, unsigned int,
void const*) + 1224
frame #5: 0x000000019049bf2c AudioToolbox`AudioConverterSetProperty + 88
frame #6: 0x0000000190254c20
AudioToolbox`ExtAudioFile::UpdateInternals() + 356
frame #7: 0x000000019025530c
AudioToolbox`ExtAudioFile::SetClientFormat(CAStreamBasicDescription const&,
CAAudioChannelLayout const*) + 1136
frame #8: 0x000000019021948c AudioToolbox`ExtAudioFileSetProperty + 280
* frame #9: 0x000000010014bdc0 MusicTrainerLite`-[AudioConvertHelper
createOutputAudioFile:](self=0x00000001702e8380,
_cmd="createOutputAudioFile:", destinationURL=0x00000001700b5540) at
AudioConvertHelper.m:162
frame #10: 0x000000010014c3a0 MusicTrainerLite`-[AudioConvertHelper
convert:toAAC_InDestinationURL:](self=0x00000001702e8380,
_cmd="convert:toAAC_InDestinationURL:", audioSourceURL=0x00000001740be600,
accOutputURL=0x00000001700b5540) at AudioConvertHelper.m:219
It is raised by ExtAudioFileSetProperty
CFURLRef tmp = (CFURLRef)destinationURL;
err = ExtAudioFileCreateWithURL(tmp, kAudioFileM4AType, &dstFormat, acl,
kAudioFileFlags_EraseFile, &destinationFile);
err = ExtAudioFileSetProperty(destinationFile,
kExtAudioFileProperty_ClientDataFormat,
sizeOfFormatASBDStruct,
&audioSourceFormat);
Over all this code is trying to convert a tmp file in LPCM format to an m4a
to save space on disk.
The input/tmp file format is
Sample Rate: 44100
Format ID: lpcm
Format Flags: C
Bytes per Packet: 4
Frames per Packet: 1
Bytes per Frame: 4
Channels per Frame: 2
Bits per Channel: 16
kAudioFormatFlagIsSignedInteger
kAudioFormatFlagIsPacked
kLinearPCMFormatFlagIsSignedInteger
kLinearPCMFormatFlagIsPacked
kLinearPCMFormatFlagsSampleFractionShift
kAppleLosslessFormatFlag_32BitSourceData
I am unable to call ExtAudioFileGetProperty After the exception
AudioStreamBasicDescription debugOutputFormat;
err = ExtAudioFileGetProperty(destinationFile,
kExtAudioFileProperty_FileDataFormat,
sizeOfFormatASBDStruct,
&debugOutputFormat);
Any suggestions would be appreciated
Andy
_______________________________________________
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