On Fri, 2005-09-30 at 22:22 +0200, Florian Schmidt wrote:
b] that the buffersize will not change inbetween two
buffersize_callbacks.
http://jackit.sourceforge.net/docs/reference/html/types_8h.html#a13
I suppose your sample rate conversion stuff is violating the jack API
requirements.
Could be, somewhat. Usually buffersize callback is used to allocate
buffers. My implementation guarantees that process callback is not
called with _more_ data between the buffersize callbacks. It can be one
sample less. It's just based on libsamplerate.
Well, my jack_convolve simply uses what jack is
providing (chopping up
the response in buffersized chunks so each block can be directly
processed without extra delay). jack_convolve relies on both a] and b]
from above (well it really ignores the possibilities of the buffer size
changing, so it really is broken, too, in a sense).
My rtEq code for example just does .Put() to filter and .Get() from
filter. All the buffer vs processing size is hidden and non-relevant.
And in case of recursive multi rate filter it can be different on each
recursion anyway.
Which really is a problem i think. I don't use any
USB hw for example,
so i don't really know how this is solved in these cases.
In case of OSS backend, this can be handled by the driver. For multiple
samplerate case this is more complex.
--
Jussi Laako <jussi.laako(a)pp.inet.fi>