Re: Convertor crash
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