discussion started at LAD about changing the jack server latency from the app called
guitarix (like ardour does from its menu JACK -> Latency). Proposed guitarix patch (by
me) works nice against jack2 but not against jack1. See below.
Hermann,
I quickly ran guitarix in debug mode through gdb. You get a crash at dsp_audio.cpp, line
469. Looks like memory at output[2] and output[3] cannot be accessed. I tried to
understand what you attempt to do but this function (mydsp::compute) is way to much for me
to understand. It looks like some sort of auto-code ...
Anyway, output[2] and output[3] are passed in from process() (process callback function).
I believe these arrays should correspond to buffers that you receive from jack audio ports
2 and 3. However, at the time we try to change the latency, they are already unregistered
because of DSP.setNumOutputs().
So it looks to me that resetting the jack buffer size on the fly from guitarix badly
interacts with how jack1 handled your port deregistration requests. I don't know why
it works with jack2. Running guitarix through gdb against jack2, I could see that
output[2] and output[3] were still valid memory locations after changing the jack buffer
size on the fly.
This is a bit unfortunate that we get different behaviors when using jack1 or jack2. I
hope you'll sort it out, I don't have more time to spend on it.
J.
PS: by the way, be careful with hardcoded values. On one hand you have gNumOutChans (= 4),
on the other you have arrays declared with [4].
--- On Sat, 5/23/09, hermann meyer <brummer-(a)web.de> wrote:
From: hermann meyer <brummer-(a)web.de>
Subject: Re: [LAD] [ANN] guitarix-0.04.4-1 release
To: "James Warden" <warjamy(a)yahoo.com>
Cc: linux-audio-dev(a)lists.linuxaudio.org
Date: Saturday, May 23, 2009, 2:24 AM
Am Freitag, den 22.05.2009, 09:07
-0700 schrieb James Warden:
Hermann,
I added a Latency menu to guitarix. You can now change
the jack server latency on
the fly from guitarix (a la
ardour). See patches below:
---------
Hi James
Many thanks, it's real welcome, but unfortunatly I
experience a lot of
chrash's with your patch added.
I work (at time) with jackd, not jackdmp, and guitarix
recive often a
wrong(NULL) pointer after change the buffer size and
chrash'd, also,
when jackd cant set the selected buffersize, jackd
chrash'd.
So here is a proper errorhandling needed.
Anyway, I have include the jack_set_buffer_size_callback,
to recreate
the intern buffer's from guitarix, when the buffersize
change, so that
guitarix can handle a buffersize change (currently not
commit).
I did'nt have check it with jackdmp, did it work for you
without
experience some chrash's ?
regards
hermann