Commit 1215849e authored by Thomas Scheuermann's avatar Thomas Scheuermann Committed by Sebastian Dröge

jack: Fix pipeline hang when jack changes sample rate or buffer size

If jackd changes the buffer size or sample rate, jackaudiosink hangs
and can't be stopped. This also happens if jack is configured as slave
and a gstreamer pipeline is started on the slave machine while the jack
master isn't running yet. If the the jack master is started it changes
the buffer size / sample rate and jackaudiosink can't be stopped.

This fix calls jack_shutdown_cb when jack_sample_rate_cb or
jack_buffer_size_cb is called.

https://bugzilla.gnome.org/show_bug.cgi?id=771272
parent dba90631
......@@ -201,20 +201,6 @@ jack_process_cb (jack_nframes_t nframes, void *arg)
return res;
}
/* we error out */
static int
jack_sample_rate_cb (jack_nframes_t nframes, void *arg)
{
return 0;
}
/* we error out */
static int
jack_buffer_size_cb (jack_nframes_t nframes, void *arg)
{
return 0;
}
static void
jack_shutdown_cb (void *arg)
{
......@@ -244,6 +230,22 @@ jack_shutdown_cb (void *arg)
g_mutex_unlock (&conn->lock);
}
/* we error out */
static int
jack_sample_rate_cb (jack_nframes_t nframes, void *arg)
{
jack_shutdown_cb(arg);
return 0;
}
/* we error out */
static int
jack_buffer_size_cb (jack_nframes_t nframes, void *arg)
{
jack_shutdown_cb(arg);
return 0;
}
typedef struct
{
const gchar *id;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment