mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-03 15:06:34 +00:00
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
This commit is contained in:
parent
dba90631bc
commit
1215849e69
1 changed files with 16 additions and 14 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue