Re: [Jack-Devel] Using the callback free API with self-created RT-threads
Thanks Stéphane and Paul for your replies.
Am Tue, 10 Sep 2013 16:49:24 +0200
schrieb Stéphane Letz <[hidden]>:
> AFAIR the jack_cycle_wait function is supposed to fail (and so properly
> quit the thread) if the server is shutdown. On which OS are you
> testing?
I'm on Linux (mainly Fedora) with the current stable version of JACK,
built from the sources. (JACK 1.9.9.5, that is.)
http://www.jackaudio.org/downloads/jack-1.9.9.5.tar.bz2
> Can you send me tour jack_cycle_wait/jack_cycle_signal based code?
I've attached an example file, with a setup similar to the project, I'm
working on. But not quite: For simplicity I only create one thread, as
the synchronization with other threads is not my problem ;-). Also, in
this example I don't require RT threads. As I am currently operating
only in user space (for testing purposes), I don't have the permissions
anyway: The same applies to the JACK server.
The program simply sets up one thread, in which a loop is run, that
uses jack_cycle_wait() and jack_cycle_signal(), to synchronize the
reading and writing of audio data.
> Thanks.
>
> Stéphane
Am Tue, 10 Sep 2013 10:54:57 -0400
schrieb Paul Davis <[hidden]>:
> On Tue, Sep 10, 2013 at 10:35 AM, Wolfgang Lorenz <[hidden]> wrote:
>
> >
> > But what I wanted to know is: Is this really the way the callback-free
> > API is supposed to work? Does anybody else see this as a problem or bug
> > that should be fixed?
> >
>
> (1) for reference, ardour has used the "callback free API" for years
> without issues (including server shutdown)
I had a look at the sources: Ardour is using the JACK-provided thread.
That's what I wanted to avoid, as I could simply have used the callback
API. I've tried to start it to see how it behaves, but the current
git-version crashes instantly SIGSEGVs at startup. I currently don't
have the time to investigate much further, but thank you for the hint.
> (2) your use of JACK sounds odd. whether you use the callback API or the
> callback-free one, audio processing
> needs to be driven by the audio interface, not your code. the way
> you have described doesn't make it
> clear to me that this is the case.
Please, have a look at the attached file, for an example, of how I
wanted to use it.
Greetings,
Wolfgang
* Attachment: 'jackPipe.cpp'
content-type: text/x-c++src
1378902559.23297_0.ltw:2, <20130911142906.1c0b9ebd at mike>