• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Convertor crash
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Convertor crash


  • Subject: Re: Convertor crash
  • From: "Kevin Parichan" <email@hidden>
  • Date: Thu, 1 May 2008 14:54:35 -0700
  • Organization: Parichan Consulting

William Stewart wrote:

>The converter is not protecting itself from multi-thread access. So,
>if you have one thread doing Fill/Convert calls and another thread
>does a Reset or some other (SetProperty) call on the converter, it can
>crash. It is the user's responsibility to use it in a thread-aware
>manner

Along those same lines, assuming I am using CA in a thread-aware manner,
is there any situation where CA routines outside my control could cause
crashes in my converter or render proc?

For example, I'm using a 3rd party library which is still using the
Sound Manager. In the crash situation, I can see that it's disposing of
a sound channel which in turn is calling AudioDeviceStop, and ultimately
waiting on a mutex. I get a crash in my render proc.

I would guess that this is a different problem, since presumably mixing
CA and QuickTime would present a similar situation.

=kp

-----


OS Version:     10.4.11 (Build 8S2167)


0   libSystem.B.dylib              	0x900248c7 semaphore_wait_signal_trap + 7
1   com.apple.audio.CoreAudio      	0x91458fb8 CAMutex::Lock() + 58
2   com.apple.audio.CoreAudio      	0x9146f0e5
IOA_Device::StartCommandExecution(void**) + 41
3   com.apple.audio.CoreAudio      	0x9146efab
HP_Device::ExecuteCommand(HP_Command*) + 61
4   com.apple.audio.CoreAudio      	0x91478533
HP_PlugIn_DeviceStop(AudioHardwarePlugInInterface**, unsigned long, long
(*)(unsigned long, AudioTimeStamp const*, AudioBufferList const*,
AudioTimeStamp const*, AudioBufferList*, AudioTimeStamp const*, void*)) + 121
5   com.apple.audio.CoreAudio      	0x91478480
HALPlugIn::DeviceStopIOProc(HALObject const&, long (*)(unsigned long,
AudioTimeStamp const*, AudioBufferList const*, AudioTimeStamp const*,
AudioBufferList*, AudioTimeStamp const*, void*)) + 44
6   com.apple.audio.CoreAudio      	0x91478452
HALDevice::StopIOProc(long (*)(unsigned long, AudioTimeStamp const*,
AudioBufferList const*, AudioTimeStamp const*, AudioBufferList*,
AudioTimeStamp const*, void*)) + 38
7   com.apple.audio.CoreAudio      	0x914783e0 AudioDeviceStop + 172
8   ...dio.SoundManager.Components 	0x028599ee HALHardwareDispatch + 4270
9   ...ple.CoreServices.CarbonCore 	0x90cd0734 CallComponentDispatch + 34
10  ...ple.CoreServices.CarbonCore 	0x90cd1cad CallComponentClose + 43
11  ...ple.CoreServices.CarbonCore 	0x90cd1bd0
CloseComponentInternal(ComponentInstanceRecord*) + 94
12  ...ple.CoreServices.CarbonCore 	0x90cd1b5b CloseComponent + 39
13  com.apple.audio.SoundManager   	0x92dc3db5 CloseSoundOutputDevice + 68
14  com.apple.audio.SoundManager   	0x92dc3bfc SndDisposeChannel + 229
15  libBxxxMachOx86.dylib          	0x01e2fe82 BxxxBufferGetError + 2100


Thread 3 Crashed:
0   ....audio.toolbox.AudioToolbox 	0x93dcfa59
TInterleaver<PCMSInt16Native, PCMSInt16Native>::Interleave(int, void**,
void*, int) + 649
1   ....audio.toolbox.AudioToolbox 	0x93d49d3e
CBRConverter::RenderOutput(CABufferList*, unsigned long, unsigned long&,
AudioStreamPacketDescription*) + 166
2   ....audio.toolbox.AudioToolbox 	0x93d49a73
BufferedAudioConverter::FillBuffer(unsigned long&, AudioBufferList&,
AudioStreamPacketDescription*) + 211
3   ....audio.toolbox.AudioToolbox 	0x93d49e32
BufferedAudioConverter::GetInputBytes(unsigned long, unsigned long&,
CABufferList const*&) + 158
4   ....audio.toolbox.AudioToolbox 	0x93d49d0f
CBRConverter::RenderOutput(CABufferList*, unsigned long, unsigned long&,
AudioStreamPacketDescription*) + 119
5   ....audio.toolbox.AudioToolbox 	0x93d49a73
BufferedAudioConverter::FillBuffer(unsigned long&, AudioBufferList&,
AudioStreamPacketDescription*) + 211
6   ....audio.toolbox.AudioToolbox 	0x93d4a5ea
BufferedInputAudioConverter::CallInputProc(unsigned long) + 142
7   ....audio.toolbox.AudioToolbox 	0x93d4a382
BufferedInputAudioConverter::GetAllInputBytes(unsigned long, unsigned
long, unsigned long&, CABufferList const*&) + 76
8   ....audio.toolbox.AudioToolbox 	0x93d4a2b5
Resampler2Wrapper::RenderOutput(CABufferList*, unsigned long, unsigned
long&) + 775
9   ....audio.toolbox.AudioToolbox 	0x93d49a73
BufferedAudioConverter::FillBuffer(unsigned long&, AudioBufferList&,
AudioStreamPacketDescription*) + 211
10  ....audio.toolbox.AudioToolbox 	0x93d49c01
AudioConverterChain::RenderOutput(CABufferList*, unsigned long, unsigned
long&, AudioStreamPacketDescription*) + 93
11  ....audio.toolbox.AudioToolbox 	0x93d49a73
BufferedAudioConverter::FillBuffer(unsigned long&, AudioBufferList&,
AudioStreamPacketDescription*) + 211
12  ....audio.toolbox.AudioToolbox 	0x93d49900
AudioConverterFillComplexBuffer + 190
13  com.myapp          	0x00030d01 CSampleSound::DoRender(unsigned
long*, unsigned long, AudioBufferList*) + 177
14  com.myapp          	0x00030f0f CS
ampleSound::RenderCallbackProc(void*, unsigned long*, AudioTimeStamp
const*, unsigned long, unsigned long, AudioBufferList*) + 47
15  ...pple.audio.units.Components 	0x7003b478 AUPeakLimiterEntry + 6856
16  ...pple.audio.units.Components 	0x7003b61e AUPeakLimiterEntry + 7278
17  ...pple.audio.units.Components 	0x70040151 AUMixer3DEntry + 8891
18  ...pple.audio.units.Components 	0x70041975 AUMixer3DEntry + 15071
19  ...pple.audio.units.Components 	0x70008695 DefaultOutputAUEntry + 29897
20  ...pple.audio.units.Components 	0x7000f778 AUHighShelfFilterEntry + 5092
21  ...pple.audio.units.Components 	0x70008f71 DefaultOutputAUEntry + 32165
22  ...pple.audio.units.Components 	0x700d1913 0x70000000 + 858387
23  ...pple.audio.units.Components 	0x700d0d1f 0x70000000 + 855327
24  ....audio.toolbox.AudioToolbox 	0x93d4a9e1
AudioConverterChain::CallInputProc(unsigned long) + 189
25  ....audio.toolbox.AudioToolbox 	0x93d4a67e
AudioConverterChain::FillBufferFromInputProc(unsigned long*, unsigned
long*, CABufferList*) + 84
26  ....audio.toolbox.AudioToolbox 	0x93d49e7e
BufferedAudioConverter::GetInputBytes(unsigned long, unsigned long&,
CABufferList const*&) + 234
27  ....audio.toolbox.AudioToolbox 	0x93d49d0f
CBRConverter::RenderOutput(CABufferList*, unsigned long, unsigned long&,
AudioStreamPacketDescription*) + 119
28  ....audio.toolbox.AudioToolbox 	0x93d49a73
BufferedAudioConverter::FillBuffer(unsigned long&, AudioBufferList&,
AudioStreamPacketDescription*) + 211
29  ....audio.toolbox.AudioToolbox 	0x93d49c01
AudioConverterChain::RenderOutput(CABufferList*, unsigned long, unsigned
long&, AudioStreamPacketDescription*) + 93
30  ....audio.toolbox.AudioToolbox 	0x93d49a73
BufferedAudioConverter::FillBuffer(unsigned long&, AudioBufferList&,
AudioStreamPacketDescription*) + 211
31  ....audio.toolbox.AudioToolbox 	0x93d49900
AudioConverterFillComplexBuffer + 190
32  ...pple.audio.units.Components 	0x70008b07 DefaultOutputAUEntry + 31035
33  ...pple.audio.units.Components 	0x70008695 DefaultOutputAUEntry + 29897
34  ...pple.audio.units.Components 	0x70007b59 DefaultOutputAUEntry + 27021
35  com.apple.audio.CoreAudio      	0x91477872
HP_IOProc::Call(AudioTimeStamp const&, AudioTimeStamp const&,
AudioBufferList const*, AudioTimeStamp const&, AudioBufferList*) + 240
36  com.apple.audio.CoreAudio      	0x91476d9a
IOA_Device::CallIOProcs(AudioTimeStamp const&, AudioTimeStamp const&,
AudioTimeStamp const&) + 274
37  com.apple.audio.CoreAudio      	0x91476b21
HP_IOThread::PerformIO(AudioTimeStamp const&) + 1299
38  com.apple.audio.CoreAudio      	0x91474f49 HP_IOThread::WorkLoop() + 953
39  com.apple.audio.CoreAudio      	0x91474b8b
HP_IOThread::ThreadEntry(HP_IOThread*) + 17
40  com.apple.audio.CoreAudio      	0x91469171
CAPThread::Entry(CAPThread*) + 93
41  libSystem.B.dylib              	0x90024227 _pthread_body + 84


 _______________________________________________
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

  • Follow-Ups:
    • Re: Convertor crash
      • From: William Stewart <email@hidden>
  • Next by Date: AUs where inputs != outputs
  • Next by thread: Re: Convertor crash
  • Index(es):
    • Date
    • Thread