summaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorlukem <lukem@pkgsrc.org>2002-03-19 07:48:43 +0000
committerlukem <lukem@pkgsrc.org>2002-03-19 07:48:43 +0000
commit5be94b56ad91dc68d613a43ff3efee46787c8f3d (patch)
treef70ad70c99562301e298c026c585c43beda5e166 /audio
parent592f235152106c7ae197e197a2324cb578eac313 (diff)
downloadpkgsrc-5be94b56ad91dc68d613a43ff3efee46787c8f3d.tar.gz
Add patches derived from the xiph.org CVS repository to fix ogg123 bugs in
1.0 rc3, and crank to nb1 whilst here: - patch-aa: the mutex and the condition variables are not owned by the buffer thread, but by the buffer itself. don't destroy them when the thread dies, but when the buffer itself dies. fixes #112. [ patch suggested by Christian Weisgerber <naddy@mips.inka.de> in private email ] - patch-ab: Some fixes to how audio writes are handled. Closes #127.
Diffstat (limited to 'audio')
-rw-r--r--audio/vorbis-tools/Makefile3
-rw-r--r--audio/vorbis-tools/distinfo4
-rw-r--r--audio/vorbis-tools/patches/patch-aa30
-rw-r--r--audio/vorbis-tools/patches/patch-ab28
4 files changed, 63 insertions, 2 deletions
diff --git a/audio/vorbis-tools/Makefile b/audio/vorbis-tools/Makefile
index 002db597076..4575b07ee3b 100644
--- a/audio/vorbis-tools/Makefile
+++ b/audio/vorbis-tools/Makefile
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.12 2002/02/19 05:54:31 itojun Exp $
+# $NetBSD: Makefile,v 1.13 2002/03/19 07:48:43 lukem Exp $
DISTNAME= vorbis-tools-1.0rc3
PKGNAME= vorbis-tools-1.0.0.7
+PKGREVISION= 1
CATEGORIES= audio
MASTER_SITES= http://www.vorbis.com/files/rc3/unix/
diff --git a/audio/vorbis-tools/distinfo b/audio/vorbis-tools/distinfo
index fb595daa9bd..c6d0e68bc10 100644
--- a/audio/vorbis-tools/distinfo
+++ b/audio/vorbis-tools/distinfo
@@ -1,4 +1,6 @@
-$NetBSD: distinfo,v 1.5 2002/01/02 12:45:42 lukem Exp $
+$NetBSD: distinfo,v 1.6 2002/03/19 07:48:43 lukem Exp $
SHA1 (vorbis-tools-1.0rc3.tar.gz) = e5c08f24eb143f0790b37b4cf49a4905a37c6e44
Size (vorbis-tools-1.0rc3.tar.gz) = 259239 bytes
+SHA1 (patch-aa) = 065dc2c262d0dcab0f97f3c56b018be0a3966db2
+SHA1 (patch-ab) = d22ceee8f01a4c7748adab69acb95575dbe4940a
diff --git a/audio/vorbis-tools/patches/patch-aa b/audio/vorbis-tools/patches/patch-aa
new file mode 100644
index 00000000000..142541b93c4
--- /dev/null
+++ b/audio/vorbis-tools/patches/patch-aa
@@ -0,0 +1,30 @@
+$NetBSD: patch-aa,v 1.4 2002/03/19 07:48:44 lukem Exp $
+
+--- ogg123/buffer.c.orig Thu Dec 20 11:24:53 2001
++++ ogg123/buffer.c
+@@ -85,12 +85,6 @@
+ buf_t *buf = (buf_t *)arg;
+
+ DEBUG("Enter buffer_thread_cleanup");
+-
+- /* Cleanup thread data structures */
+- pthread_mutex_unlock(&buf->mutex);
+- pthread_mutex_destroy(&buf->mutex);
+- pthread_cond_destroy(&buf->playback_cond);
+- pthread_cond_destroy(&buf->write_cond);
+ }
+
+
+@@ -430,6 +424,12 @@
+ void buffer_destroy (buf_t *buf)
+ {
+ DEBUG("buffer_destroy");
++
++ /* Cleanup pthread variables */
++ pthread_mutex_destroy(&buf->mutex);
++ pthread_cond_destroy(&buf->write_cond);
++ pthread_cond_destroy(&buf->playback_cond);
++
+ free(buf);
+ }
+
diff --git a/audio/vorbis-tools/patches/patch-ab b/audio/vorbis-tools/patches/patch-ab
new file mode 100644
index 00000000000..8d497ea1875
--- /dev/null
+++ b/audio/vorbis-tools/patches/patch-ab
@@ -0,0 +1,28 @@
+$NetBSD: patch-ab,v 1.3 2002/03/19 07:48:45 lukem Exp $
+
+--- ogg123/buffer.c.orig Tue Mar 19 18:02:36 2002
++++ ogg123/buffer.c
+@@ -232,7 +232,7 @@
+ /* No need to lock mutex here because the other thread will
+ NEVER reduce the number of bytes stored in the buffer */
+ DEBUG("Sending %d bytes to the audio device", write_amount);
+- buf->write_func(buf->buffer + buf->start, write_amount,
++ write_amount = buf->write_func(buf->buffer + buf->start, write_amount,
+ /* Only set EOS if this is the last chunk */
+ write_amount == buf->curfill ? buf->eos : 0,
+ buf->write_arg);
+
+--- ogg123/callbacks.c.orig Thu Dec 27 01:22:26 2001
++++ ogg123/callbacks.c
+@@ -30,7 +30,11 @@
+ audio_play_arg_t *play_arg = (audio_play_arg_t *) arg;
+ int ret;
+
++ pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
++
+ ret = audio_devices_write(play_arg->devices, ptr, nbytes);
++
++ pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
+
+ return ret ? nbytes : 0;
+ }