Strange AUParameterSet behavior in Logic 6.3.1, OS X 10.2?
Strange AUParameterSet behavior in Logic 6.3.1, OS X 10.2?
- Subject: Strange AUParameterSet behavior in Logic 6.3.1, OS X 10.2?
- From: Rob Martino <email@hidden>
- Date: Thu, 20 Nov 2003 11:20:39 -0500
Hello,
Our plug-ins use a modified version of the VST2AU wrapper. One of the
modifications I made to the VST2AUView class is that in the CreateUI
function I create a bunch of parameter listeners so I can update the
GUI for automation data (the code is at the bottom of this email).
I'm noticing some crashes in Logic that seem to be related to new
functionality I added which calls AUParameterSet several times in a row
for a set of parameters. Once several of these calls happen in
succession, the plug-in becomes unstable...if it doesn't crash during
the second of these series of quick sets, it will often crash when I
close the plug-in in the VST2AUView destructor where I dispose of all
the parameter listeners.
The crashes always seem to be in Rb_tree code in AudioToolbox:
Thread 0 Crashed:
#0 0x94d547e8 in std::_Rb_tree<XAudioUnitEvent,
std::pair<XAudioUnitEvent const, ListenerBinding*>,
std::_Select1st<std::pair<XAudioUnitEvent const, ListenerBinding*> >,
std::less<XAudioUnitEvent>, std::allocator<std::pair<XAudioUnitEvent
const, ListenerBinding*> > >::find(XAudioUnitEvent const&)
#1 0x94d54850 in std::_Rb_tree<XAudioUnitEvent,
std::pair<XAudioUnitEvent const, ListenerBinding*>,
std::_Select1st<std::pair<XAudioUnitEvent const, ListenerBinding*> >,
std::less<XAudioUnitEvent>, std::allocator<std::pair<XAudioUnitEvent
const, ListenerBinding*> > >::find(XAudioUnitEvent const&)
#2 0x94ccf3bc in AUParameterSet
or
Thread 0 Crashed:
#0 0x94d44ec0 in
std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*,
std::_Rb_tree_node_base*&, std::_Rb_tree_node_base*&,
std::_Rb_tree_node_base*&)
#1 0x94d44ebc in
std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*,
std::_Rb_tree_node_base*&, std::_Rb_tree_node_base*&,
std::_Rb_tree_node_base*&)
#2 0x94ccf348 in AUListenerRemoveParameter
This doesn't happen in any other AU host, and on a machine I just
installed Panther and the newest development SDK (and where I
recompiled the plug-ins), the crashes don't seem to happen anymore.
Anyone else experience something similar?
Thanks,
Rob
Listener creation code:
err = AUListenerCreate(ParameterListenerProc, this,
CFRunLoopGetCurrent(), kCFRunLoopDefaultMode, 0.000f, // 0 ms
¶meterListener);
...
aup = new AudioUnitParameter[paramCount];
for(int i=0;i< paramCount ;i++)
{
aup[i].mAudioUnit = GetEditAudioUnit();
aup[i].mScope = kAudioUnitScope_Global;
aup[i].mElement = 0;
aup[i].mParameterID = i;
AUListenerAddParameter(parameterListener, this, &aup[i]);
}
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.