Github messages for voidlinux
 help / color / mirror / Atom feed
From: joey-commits <joey-commits@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] New package: pcaudiolib-1.1
Date: Mon, 16 Nov 2020 22:09:48 +0100	[thread overview]
Message-ID: <20201116210948.yKS0ubIqGJbzxQf_nf8m91xW8DkuBH1vVAJ9wPFqhMo@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-26416@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 327 bytes --]

There is an updated pull request by joey-commits against master on the void-packages repository

https://github.com/joey-commits/void-packages pcaudio
https://github.com/void-linux/void-packages/pull/26416

New package: pcaudiolib-1.1


A patch file from https://github.com/void-linux/void-packages/pull/26416.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-pcaudio-26416.patch --]
[-- Type: text/x-diff, Size: 6258 bytes --]

From 5842603ba8a4b06b32a3a2a251ee5c64cab0e9e6 Mon Sep 17 00:00:00 2001
From: Joey <joey@imap.cc>
Date: Sun, 15 Nov 2020 16:21:54 -0500
Subject: [PATCH] New package: pcaudiolib-1.1

---
 common/shlibs                                 |  1 +
 srcpkgs/pcaudiolib-devel                      |  1 +
 .../upstream-fix-alsa-sample-size.patch       | 19 +++++
 .../patches/upstream-fix-snappiness.patch     | 76 +++++++++++++++++++
 srcpkgs/pcaudiolib/template                   | 28 +++++++
 5 files changed, 125 insertions(+)
 create mode 120000 srcpkgs/pcaudiolib-devel
 create mode 100644 srcpkgs/pcaudiolib/patches/upstream-fix-alsa-sample-size.patch
 create mode 100644 srcpkgs/pcaudiolib/patches/upstream-fix-snappiness.patch
 create mode 100644 srcpkgs/pcaudiolib/template

diff --git a/common/shlibs b/common/shlibs
index a32a8f994e0..ae957d6125e 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3990,3 +3990,4 @@ liburing.so.1 liburing-0.7_1
 libbson-1.0.so.0 libbson-1.17.0_1
 libsonic.so.0 libsonic-0.2.0_1
 libtickit.so.3 libtickit-0.4.1_1
+libpcaudio.so.0 pcaudiolib-1.1_1
diff --git a/srcpkgs/pcaudiolib-devel b/srcpkgs/pcaudiolib-devel
new file mode 120000
index 00000000000..e1bc88225c6
--- /dev/null
+++ b/srcpkgs/pcaudiolib-devel
@@ -0,0 +1 @@
+pcaudiolib
\ No newline at end of file
diff --git a/srcpkgs/pcaudiolib/patches/upstream-fix-alsa-sample-size.patch b/srcpkgs/pcaudiolib/patches/upstream-fix-alsa-sample-size.patch
new file mode 100644
index 00000000000..8fe68794577
--- /dev/null
+++ b/srcpkgs/pcaudiolib/patches/upstream-fix-alsa-sample-size.patch
@@ -0,0 +1,19 @@
+commit d6a6b00aa4334b461c1a09c27b6c681eaac8da8a
+Author: Martin Schreiber <mse00000@gmail.com>
+Date:   Sat Mar 10 06:55:58 2018 +0100
+
+    * Alsa: fixed sample_size calculation, multiply with channel count.
+
+diff --git src/alsa.c src/alsa.c
+index 34e39be..6af1941 100644
+--- src/alsa.c
++++ src/alsa.c
+@@ -53,7 +53,7 @@ alsa_object_open(struct audio_object *object,
+ 		return -EEXIST;
+ 
+ 	snd_pcm_format_t pcm_format;
+-#define FORMAT(srcfmt, dstfmt, size) case srcfmt: pcm_format = dstfmt; self->sample_size = size; break;
++#define FORMAT(srcfmt, dstfmt, size) case srcfmt: pcm_format = dstfmt; self->sample_size = size*channels; break;
+ 	switch (format)
+ 	{
+ 	FORMAT(AUDIO_OBJECT_FORMAT_ALAW,      SND_PCM_FORMAT_A_LAW, 1)
diff --git a/srcpkgs/pcaudiolib/patches/upstream-fix-snappiness.patch b/srcpkgs/pcaudiolib/patches/upstream-fix-snappiness.patch
new file mode 100644
index 00000000000..4ea1a613b38
--- /dev/null
+++ b/srcpkgs/pcaudiolib/patches/upstream-fix-snappiness.patch
@@ -0,0 +1,76 @@
+commit a41d46e816d2cbcd93564c42b65a87af547bcb2d
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date:   Sun Oct 11 17:34:57 2020 +0200
+
+    Fix cancellation snappiness
+    
+    Screen reader users report getting late cancellation, or even mixtures
+    of speech. This is because the default buffering parameters of alsa or
+    pulseaudio are relatively large.
+    
+    This change sets alsa and pulseaudio buffer sizes to 10ms worth of audio,
+    which is the human snappiness perception limit.
+
+diff --git src/alsa.c src/alsa.c
+index 64d5a90..c856788 100644
+--- src/alsa.c
++++ src/alsa.c
+@@ -99,6 +99,7 @@ alsa_object_open(struct audio_object *object,
+ 
+ 	snd_pcm_hw_params_t *params = NULL;
+ 	snd_pcm_hw_params_malloc(&params);
++	snd_pcm_uframes_t bufsize = (rate * channels * LATENCY) / 1000;
+ 
+ 	int err = 0;
+ 	if ((err = snd_pcm_open(&self->handle, self->device ? self->device : "default", SND_PCM_STREAM_PLAYBACK, 0)) < 0)
+@@ -113,6 +114,8 @@ alsa_object_open(struct audio_object *object,
+ 		goto error;
+ 	if ((err = snd_pcm_hw_params_set_channels(self->handle, params, channels)) < 0)
+ 		goto error;
++	if ((err = snd_pcm_hw_params_set_buffer_size_near(self->handle, params, &bufsize)) < 0)
++		goto error;
+ 	if ((err = snd_pcm_hw_params(self->handle, params)) < 0)
+ 		goto error;
+ 	if ((err = snd_pcm_prepare(self->handle)) < 0)
+diff --git src/audio_priv.h src/audio_priv.h
+index 9526138..669a037 100644
+--- src/audio_priv.h
++++ src/audio_priv.h
+@@ -52,6 +52,10 @@ struct audio_object
+ 	                         int error);
+ };
+ 
++/* We try to aim for 10ms cancelation latency, which will be perceived as
++ * "snappy" by users */
++#define LATENCY 10
++
+ #if defined(_WIN32) || defined(_WIN64)
+ 
+ #include <windows.h>
+diff --git src/pulseaudio.c src/pulseaudio.c
+index d23366d..2f80c62 100644
+--- src/pulseaudio.c
++++ src/pulseaudio.c
+@@ -74,6 +74,13 @@ pulseaudio_object_open(struct audio_object *object,
+ 	}
+ 
+ 	int error = 0;
++	pa_buffer_attr battr;
++
++	battr.fragsize = (uint32_t) -1;
++	battr.maxlength = (uint32_t) -1;
++	battr.minreq = (uint32_t) -1;
++	battr.prebuf = (uint32_t) -1;
++	battr.tlength = pa_bytes_per_second(&self->ss) * LATENCY / 1000;
+ 	self->s = pa_simple_new(NULL,
+ 	                        self->application_name,
+ 	                        PA_STREAM_PLAYBACK,
+@@ -81,7 +88,7 @@ pulseaudio_object_open(struct audio_object *object,
+ 	                        self->description,
+ 	                        &self->ss,
+ 	                        NULL,
+-	                        NULL,
++	                        &battr,
+ 	                        &error);
+ 	return error;
+ }
diff --git a/srcpkgs/pcaudiolib/template b/srcpkgs/pcaudiolib/template
new file mode 100644
index 00000000000..d2a2b5e8009
--- /dev/null
+++ b/srcpkgs/pcaudiolib/template
@@ -0,0 +1,28 @@
+# Template file for 'pcaudiolib'
+pkgname=pcaudiolib
+version=1.1
+revision=1
+wrksrc=${pkgname}-${version}
+build_style=gnu-configure
+hostmakedepends="automake libtool which pkg-config"
+makedepends="alsa-lib-devel pulseaudio-devel"
+short_desc="Portable C Audio Library"
+maintainer="Joey <joey@imap.cc>"
+license="GPL-3.0-or-later"
+homepage="https://github.com/espeak-ng/pcaudiolib"
+distfiles="https://github.com/espeak-ng/pcaudiolib/archive/${version}.tar.gz"
+checksum=699a5a347b1e12dc5b122e192e19f4db01621826bf41b9ebefb1cbc63ae2180b
+
+pre_configure() {
+	./autogen.sh
+}
+
+pcaudiolib-devel_package() {
+	depends="pcaudiolib>=${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.so"
+		vmove "usr/lib/*.a"
+	}
+}

  parent reply	other threads:[~2020-11-16 21:09 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-15 21:39 [PR PATCH] " joey-commits
2020-11-16 15:52 ` joey-commits
2020-11-16 15:52 ` [PR PATCH] [Closed]: " joey-commits
2020-11-16 15:58 ` joey-commits
2020-11-16 21:09 ` joey-commits [this message]
2020-11-16 21:30 ` joey-commits
2020-12-13 10:39 ` joey-commits
2020-12-13 12:53 ` [PR REVIEW] " Duncaen
2020-12-13 12:53 ` Duncaen
2020-12-13 20:52 ` [PR PATCH] [Updated] " joey-commits
2020-12-13 23:52 ` joey-commits
2020-12-14 13:36 ` [PR PATCH] [Merged]: " ericonr
2020-12-14 13:36 ` ericonr

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201116210948.yKS0ubIqGJbzxQf_nf8m91xW8DkuBH1vVAJ9wPFqhMo@z \
    --to=joey-commits@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).