Thanks Kevin

Andy

From:  Kevin Dixon <[email protected]>
Date:  Sunday, July 23, 2017 at 9:18 PM
To:  Andrew Davidson <[email protected]>
Cc:  coreaudio-api <[email protected]>
Subject:  Re: why is ExtAudioFileSetProperty raises c++ exception?

> Hi Andy,
> 
> I guess what you're describing is if you create a symbolic breakpoint for All
> Exceptions Thrown, then yes, you will break in a lot of the ExtAudioFile APIs.
> Internally Apple implemented this library with C++, and apparently some code
> paths tend to produce exceptions that are caught internally by the library.
> It's a bit annoying when debugging, but nothing to worry about. Just check the
> OSStatus returned from the C-like API to see if everything is working.
> 
> Kevin
> 
> On Wed, Jul 19, 2017 at 3:30 PM, Andy Davidson <[email protected]>
> wrote:
>> 
>> 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 protected])
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/coreaudio-api/kevin.c.dixon%40gmail.c
>> om
>> 
>> This email sent to [email protected]
>> 
> 


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to