summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2006-11-30 11:59:04 +0000
committerWim Taymans <wim.taymans@gmail.com>2006-11-30 11:59:04 +0000
commit1001e1d1e0d497ed57622defb19827ac6b6a6cff (patch)
tree8c01749976fdfe0ccdfb1e64ca0f5968ac43b0ad
parent76c1316131f03bc89de8dee086199d3c86ff2e4e (diff)
downloadgst-plugins-bad-1001e1d1e0d497ed57622defb19827ac6b6a6cff.tar.gz
gst-plugins-bad-1001e1d1e0d497ed57622defb19827ac6b6a6cff.tar.bz2
gst-plugins-bad-1001e1d1e0d497ed57622defb19827ac6b6a6cff.zip
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.
-rw-r--r--ChangeLog10
-rw-r--r--ext/Makefile.am1
-rw-r--r--ext/jack/gstjackaudiosink.c10
3 files changed, 17 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index d0504afc..ac384809 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2006-11-30 Wim Taymans <wim@fluendo.com>
+ * 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 <wim@fluendo.com>
+
* configure.ac:
* ext/Makefile.am:
* ext/jack/Makefile.am:
diff --git a/ext/Makefile.am b/ext/Makefile.am
index 0511c9ad..252a06f3 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 5a0cadf8..c2c5e656 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));
}