diff --git a/NEWS b/NEWS index 619495013..f1b03f637 100644 --- a/NEWS +++ b/NEWS @@ -34,6 +34,8 @@ ver 0.15 - (200?/??/??) ver 0.14.2 (2009/??/??) +* audio outputs: + - jack: allocate ring buffers before connecting ver 0.14.1 (2009/01/17) diff --git a/src/output/jack_plugin.c b/src/output/jack_plugin.c index c05f6a77d..d16eb0443 100644 --- a/src/output/jack_plugin.c +++ b/src/output/jack_plugin.c @@ -217,6 +217,9 @@ mpd_jack_connect(struct jack_data *jd, struct audio_format *audio_format) jd->audio_format = audio_format; + jd->ringbuffer[0] = jack_ringbuffer_create(jd->ringbuffer_size); + jd->ringbuffer[1] = jack_ringbuffer_create(jd->ringbuffer_size); + if ((jd->client = jack_client_new(mpd_jack_name(jd))) == NULL) { g_warning("jack server not running?"); return -1; @@ -263,11 +266,6 @@ mpd_jack_connect(struct jack_data *jd, struct audio_format *audio_format) if ( jd->output_ports[1] ) { const char *name = mpd_jack_name(jd); - jd->ringbuffer[0] = jack_ringbuffer_create(jd->ringbuffer_size); - jd->ringbuffer[1] = jack_ringbuffer_create(jd->ringbuffer_size); - memset(jd->ringbuffer[0]->buf, 0, jd->ringbuffer[0]->size); - memset(jd->ringbuffer[1]->buf, 0, jd->ringbuffer[1]->size); - port_name = g_malloc(sizeof(port_name[0]) * (7 + strlen(name))); sprintf(port_name, "%s:left", name);