summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2021-09-09 21:41:59 +0000
committernia <nia@pkgsrc.org>2021-09-09 21:41:59 +0000
commitcbc29400c44283b1d877b2f81cc98f9a002db369 (patch)
tree884de1ab8ebd681418ebeb9edb4ae7c251e24ae3
parentaba8fffb670298081c5cf8d0369cfbd11d05e2a7 (diff)
downloadpkgsrc-cbc29400c44283b1d877b2f81cc98f9a002db369.tar.gz
portaudio: Fix playing very short files in Audacity with Sun backend
According to portaudio's own docs, my previous code was correct - aborting the stream should cause any queued samples to be dropped. However, audacity seems to be abusing the portaudio API and calling Abort immediately once it's finished processing the output...
-rw-r--r--audio/portaudio/Makefile4
-rw-r--r--audio/portaudio/distinfo4
-rw-r--r--audio/portaudio/patches/patch-src_hostapi_sun_pa__unix__sun.c25
3 files changed, 8 insertions, 25 deletions
diff --git a/audio/portaudio/Makefile b/audio/portaudio/Makefile
index 976828396cc..7d5959965fc 100644
--- a/audio/portaudio/Makefile
+++ b/audio/portaudio/Makefile
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.33 2021/09/08 21:04:57 nia Exp $
+# $NetBSD: Makefile,v 1.34 2021/09/09 21:41:59 nia Exp $
DISTNAME= pa_stable_v190600_20161030
PKGNAME= ${DISTNAME:S/^pa_stable_v/portaudio-/1:S/_/./g}
-PKGREVISION= 8
+PKGREVISION= 9
CATEGORIES= audio
MASTER_SITES= http://www.portaudio.com/archives/
EXTRACT_SUFX= .tgz
diff --git a/audio/portaudio/distinfo b/audio/portaudio/distinfo
index 3f786913a73..098c9b9ec5d 100644
--- a/audio/portaudio/distinfo
+++ b/audio/portaudio/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.25 2021/01/16 21:06:52 reinoud Exp $
+$NetBSD: distinfo,v 1.26 2021/09/09 21:41:59 nia Exp $
SHA1 (pa_stable_v190600_20161030.tgz) = 56c596bba820d90df7d057d8f6a0ec6bf9ab82e8
RMD160 (pa_stable_v190600_20161030.tgz) = e6e5cd3f3cb7469aa17549c189e445d573567e13
@@ -14,5 +14,5 @@ SHA1 (patch-src_common_pa__stream.c) = 58e6ab2a61957208973a59be2f1140abc922f360
SHA1 (patch-src_common_pa__stream.h) = 94781a9ae79ea1340eea8caadc106416c019cf74
SHA1 (patch-src_hostapi_alsa_pa__linux__alsa.c) = 71daf913422f72aa379ae8cc302186800cff7717
SHA1 (patch-src_hostapi_oss_pa__unix__oss.c) = 572c48f64104e22e7ae49acc54a26e549e381b5b
-SHA1 (patch-src_hostapi_sun_pa__unix__sun.c) = 0a2d26e477bb4c45d56b8d70db5a939911f4cf64
+SHA1 (patch-src_hostapi_sun_pa__unix__sun.c) = bab9b21d35d76afafa06c929bb35954d3870bc0d
SHA1 (patch-src_os_unix_pa__unix__hostapis.c) = 8cfc7d7aac8f9803e204711ded3d64842913f4fd
diff --git a/audio/portaudio/patches/patch-src_hostapi_sun_pa__unix__sun.c b/audio/portaudio/patches/patch-src_hostapi_sun_pa__unix__sun.c
index 0fb58037706..277a55c1a10 100644
--- a/audio/portaudio/patches/patch-src_hostapi_sun_pa__unix__sun.c
+++ b/audio/portaudio/patches/patch-src_hostapi_sun_pa__unix__sun.c
@@ -1,10 +1,10 @@
-$NetBSD: patch-src_hostapi_sun_pa__unix__sun.c,v 1.3 2021/01/16 21:06:52 reinoud Exp $
+$NetBSD: patch-src_hostapi_sun_pa__unix__sun.c,v 1.4 2021/09/09 21:42:00 nia Exp $
Sun/NetBSD audio support.
---- src/hostapi/sun/pa_unix_sun.c.orig 2021-01-16 19:57:35.080979704 +0000
+--- src/hostapi/sun/pa_unix_sun.c.orig 2021-09-09 21:10:47.132269006 +0000
+++ src/hostapi/sun/pa_unix_sun.c
-@@ -0,0 +1,1140 @@
+@@ -0,0 +1,1123 @@
+/*
+ * $Id"
+ * PortAudio Portable Real-Time Audio Library
@@ -100,11 +100,6 @@ Sun/NetBSD audio support.
+#define SUN_DEV_DEFAULT "/dev/audio"
+#endif
+
-+#ifndef AUDIO_FLUSH
-+#include <sys/stropts.h>
-+#define AUDIO_FLUSH I_FLUSH
-+#endif
-+
+#ifndef AUDIO_ENCODING_SLINEAR
+#define AUDIO_ENCODING_SLINEAR AUDIO_ENCODING_LINEAR
+#endif
@@ -919,19 +914,7 @@ Sun/NetBSD audio support.
+
+static PaError AbortStream( PaStream *s )
+{
-+ PaError result = paNoError;
-+ PaSunStream *stream = (PaSunStream*)s;
-+
-+ stream->stopped = true;
-+
-+ if( stream->bufferProcessor.streamCallback )
-+ PA_ENSURE( PaUtil_CancelThreading( &stream->threading, 0, NULL ) );
-+
-+ if( stream->play.fd != -1 )
-+ (void)ioctl(stream->play.fd, AUDIO_FLUSH);
-+
-+error:
-+ return result;
++ StopStream(s);
+}
+
+static PaError IsStreamStopped( PaStream *s )