TransportState AU host callbacks - Logic warning
TransportState AU host callbacks - Logic warning
- Subject: TransportState AU host callbacks - Logic warning
- From: Marc Poirier <email@hidden>
- Date: Sun, 28 Mar 2004 16:19:14 -0500 (EST)
Warning: For those of you experimenting with supporting the new
TransportState AU host callbacks, beware that your plugin will crash in
Logic. Unfortunately, given the way Logic is behaving right now, you
simply can't even try using the callback if anyone might use your plugin
in Logic.
The bug is that Logic, when Setting the kAudioUnitProperty_HostCallbacks,
is providing a bogus value for the inDataSize parameter. It is telling
the AU what it thinks the AU wants to hear rather than the actual size of
the incoming data buffer, i.e. it is passing the value received from
GetPropertyInfo rather than the size of the actual data being offered to
the AU. So the problem with this is that, the buffer that Logic is
passing is 12 bytes in size, but it is telling the AU that it is 16 bytes,
and so the AU reads in 4 bytes of random garbage as the value for the
transportStateProc function pointer.
This whole system is supposed to be designed in a way such that the host
callbacks structure can be extended and older hosts will still safeul work
with newer plugs, but when hosts do things incorrectly in this way,
unfortunately it makes it unsafe to do what you ought to be able to do
safely.
So hopefully Emagic will fix this soon. This is a really big problem!
Given how popular of an AU host Logic is, this effectively means that no
one can make use of the new callbacks until Logic is fixed. :-(
I'm going to report this to Emagic now, but I thought I'd put a warning
out to other AU developers, too...
Marc
_______________________________________________
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.