From 1001e1d1e0d497ed57622defb19827ac6b6a6cff Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 30 Nov 2006 11:59:04 +0000 Subject: [PATCH] ext/Makefile.am: Fix build. Original commit message from CVS: * ext/Makefile.am: Fix build. * ext/jack/gstjackaudiosink.c: (jack_process_cb), (jack_sample_rate_cb), (jack_buffer_size_cb), (jack_shutdown_cb), (gst_jack_ring_buffer_acquire): Small cleanups. --- ChangeLog | 10 ++++++++++ ext/Makefile.am | 1 + ext/jack/gstjackaudiosink.c | 10 ++++++---- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index d0504afc01..ac38480941 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2006-11-30 Wim Taymans + + * ext/Makefile.am: + Fix build. + + * ext/jack/gstjackaudiosink.c: (jack_process_cb), + (jack_sample_rate_cb), (jack_buffer_size_cb), (jack_shutdown_cb), + (gst_jack_ring_buffer_acquire): + Small cleanups. + 2006-11-30 Wim Taymans * configure.ac: diff --git a/ext/Makefile.am b/ext/Makefile.am index 0511c9ad8a..252a06f32a 100644 --- a/ext/Makefile.am +++ b/ext/Makefile.am @@ -291,6 +291,7 @@ DIST_SUBDIRS= \ faad \ gsm \ ivorbis \ + jack \ libmms \ dts \ divx \ diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c index 5a0cadf8be..c2c5e65671 100644 --- a/ext/jack/gstjackaudiosink.c +++ b/ext/jack/gstjackaudiosink.c @@ -196,28 +196,30 @@ jack_process_cb (jack_nframes_t nframes, void *arg) if (gst_ring_buffer_prepare_read (buf, &readseg, &readptr, &len)) { flen = len / channels; + /* the number of samples must be exactly the segment size */ if (nframes * sizeof (sample_t) != flen) goto wrong_size; - /* copy samples */ GST_DEBUG ("copy %d frames: %p, %d bytes, %d channels", nframes, readptr, flen, channels); data = (sample_t *) readptr; - /* copy and interleave into target buffers */ + /* the samples in the ringbuffer have the channels interleaved, we need to + * deinterleave into the jack target buffers */ for (i = 0; i < nframes; i++) { for (j = 0; j < channels; j++) { buffers[j][i] = *data++; } } - /* clear written samples */ + /* clear written samples in the ringbuffer */ gst_ring_buffer_clear (buf, readseg); /* we wrote one segment */ gst_ring_buffer_advance (buf, 1); } else { - /* write silence to all buffers */ + /* We are not allowed to read from the ringbuffer, write silence to all + * jack output buffers */ for (i = 0; i < channels; i++) { memset (buffers[i], 0, nframes * sizeof (sample_t)); }