forked from pool/alsa-utils
Accepting request 899942 from home:tiwai:branches:multimedia:libs
- Update to alsa-utils 1.2.5: a major version up, including previous patches https://www.alsa-project.org/wiki/Changes_v1.2.4_v1.2.5 - Update to alsa-utils 1.2.5.1: a small bugfix release https://www.alsa-project.org/wiki/Changes_v1.2.5_v1.2.5.1 - Drop the obsoleted patches: 0001-aplay-try-to-use-16-bit-format-to-increase-capture-q.patch 0002-alsamixer-Fix-the-mixer-views-description-in-man-pag.patch 0003-Add-Slovak-translation.patch 0004-Add-Basque-translation.patch 0006-aplay-cosmetic-code-fix-in-xrun.patch 0007-aplay-fix-the-CPU-busy-loop-in-the-pause-handler.patch 0008-alsa-info-Add-lsusb-and-stream-outputs.patch 0010-alsactl-Fix-double-decrease-of-lock-timeout.patch 0011-alsactl-Fix-race-at-creating-a-lock-file.patch 0012-alsactl-Remove-asound.state-file-check-from-alsa-res.patch 0013-aplay-add-test-code-for-snd_pcm_status-to-test-posit.patch 0014-ucm-fix-typo-in-docs.patch 0015-aplay-add-avail-delay-checks-to-test-position.patch 0016-alsactl-daemon-read_pid_file-fix-the-returned-code-o.patch 0017-alsactl-init-set_ctl_value-fix-bytes-parsing.patch 0018-alsactl-init-parse-fix-possible-double-free.patch 0019-alsaloop-fix-possible-memory-leak-in-create_loopback.patch 0020-alsaloop-get_queued_playback_samples-simplify-code.patch 0021-topology-fix-possible-double-free-in-load.patch 0022-alsamixer-remove-dead-fcn-widget_handle_key-in-widge.patch 0023-alsamixer-remove-unused-variable-y-in-display_scroll.patch 0024-alsamixer-fix-shift-in-parse_words.patch 0025-aplay-fix-the-test-position-test-for-playback-avail-.patch OBS-URL: https://build.opensuse.org/request/show/899942 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa-utils?expand=0&rev=194
This commit is contained in:
parent
4267bf074f
commit
714a3234d5
@ -1,187 +0,0 @@
|
||||
From 0c5948e98a6a8535c89b7bcab13017d7732181c6 Mon Sep 17 00:00:00 2001
|
||||
From: Hui Wang <hui.wang@canonical.com>
|
||||
Date: Fri, 23 Oct 2020 16:47:10 +0800
|
||||
Subject: [PATCH 01/25] aplay: try to use 16-bit format to increase capture
|
||||
quality
|
||||
|
||||
Recently users reported a bug, I tested it and found it is a common
|
||||
issue on Laptop or Desktop machines.
|
||||
|
||||
The issue is users plug a headset and use "arecord test.wav" to
|
||||
record a sound with default input volume, the recorded sound has
|
||||
poor quality and nearly can't distinguish it is the sound we want
|
||||
to record.
|
||||
|
||||
This is because the input volume is low and the default format is U8.
|
||||
The driver records sound with 16bit, because the input volume is low,
|
||||
most of samples are within (-256,+256), when converting 16bit to U8,
|
||||
those samples will be 0x7f. This is called quantization noise and we
|
||||
could only workaround it by increase the input volume or adding -f to
|
||||
arecord.
|
||||
|
||||
But users want to record a better quality sound with default input
|
||||
volume (after installing a new OS, the volume is the default volume),
|
||||
and they don't want to add parameters to the arecord because most of
|
||||
new linux users just use "arecord test.wav".
|
||||
|
||||
So this patch tries to change the default format from U8 to S16_LE/BE.
|
||||
If the machine doesn't support S16_LE/BE, it still uses U8 as default
|
||||
format.
|
||||
|
||||
Signed-off-by: Hui Wang <hui.wang@canonical.com>
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
aplay/aplay.c | 43 ++++++++++++++++++++++++++++++++++---------
|
||||
1 file changed, 34 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
||||
index 0a65ad69fd14..a27220d8fd03 100644
|
||||
--- a/aplay/aplay.c
|
||||
+++ b/aplay/aplay.c
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <malloc.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
+#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <getopt.h>
|
||||
#include <fcntl.h>
|
||||
@@ -94,6 +95,7 @@ enum {
|
||||
VUMETER_STEREO
|
||||
};
|
||||
|
||||
+static snd_pcm_format_t default_format = DEFAULT_FORMAT;
|
||||
static char *command;
|
||||
static snd_pcm_t *handle;
|
||||
static struct {
|
||||
@@ -468,6 +470,24 @@ static long parse_long(const char *str, int *err)
|
||||
return val;
|
||||
}
|
||||
|
||||
+static void try_to_adjust_default_format_16bit(void)
|
||||
+{
|
||||
+ snd_pcm_hw_params_t *params;
|
||||
+ int err;
|
||||
+
|
||||
+ snd_pcm_hw_params_alloca(¶ms);
|
||||
+ err = snd_pcm_hw_params_any(handle, params);
|
||||
+ if (err < 0) {
|
||||
+ error(_("Broken configuration for this PCM: no configurations available"));
|
||||
+ prg_exit(EXIT_FAILURE);
|
||||
+ }
|
||||
+
|
||||
+ if (file_type != FORMAT_AU && snd_pcm_hw_params_test_format(handle, params, SND_PCM_FORMAT_S16_LE) == 0)
|
||||
+ rhwparams.format = default_format = SND_PCM_FORMAT_S16_LE;
|
||||
+ else if (file_type == FORMAT_AU && snd_pcm_hw_params_test_format(handle, params, SND_PCM_FORMAT_S16_BE) == 0)
|
||||
+ rhwparams.format = default_format = SND_PCM_FORMAT_S16_BE;
|
||||
+}
|
||||
+
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int duration_or_sample = 0;
|
||||
@@ -528,6 +548,7 @@ int main(int argc, char *argv[])
|
||||
int do_device_list = 0, do_pcm_list = 0;
|
||||
snd_pcm_info_t *info;
|
||||
FILE *direction;
|
||||
+ bool user_set_fmt = false;
|
||||
|
||||
#ifdef ENABLE_NLS
|
||||
setlocale(LC_ALL, "");
|
||||
@@ -562,7 +583,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
chunk_size = -1;
|
||||
- rhwparams.format = DEFAULT_FORMAT;
|
||||
+ rhwparams.format = default_format;
|
||||
rhwparams.rate = DEFAULT_SPEED;
|
||||
rhwparams.channels = 1;
|
||||
|
||||
@@ -612,6 +633,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
break;
|
||||
case 'f':
|
||||
+ user_set_fmt = true;
|
||||
if (strcasecmp(optarg, "cd") == 0 || strcasecmp(optarg, "cdr") == 0) {
|
||||
if (strcasecmp(optarg, "cdr") == 0)
|
||||
rhwparams.format = SND_PCM_FORMAT_S16_BE;
|
||||
@@ -844,6 +866,9 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
+ if (!user_set_fmt)
|
||||
+ try_to_adjust_default_format_16bit();
|
||||
+
|
||||
chunk_size = 1024;
|
||||
hwparams = rhwparams;
|
||||
|
||||
@@ -1064,7 +1089,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size)
|
||||
hwparams.channels = channels;
|
||||
switch (TO_CPU_SHORT(f->bit_p_spl, big_endian)) {
|
||||
case 8:
|
||||
- if (hwparams.format != DEFAULT_FORMAT &&
|
||||
+ if (hwparams.format != default_format &&
|
||||
hwparams.format != SND_PCM_FORMAT_U8)
|
||||
fprintf(stderr, _("Warning: format is changed to U8\n"));
|
||||
hwparams.format = SND_PCM_FORMAT_U8;
|
||||
@@ -1074,7 +1099,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size)
|
||||
native_format = SND_PCM_FORMAT_S16_BE;
|
||||
else
|
||||
native_format = SND_PCM_FORMAT_S16_LE;
|
||||
- if (hwparams.format != DEFAULT_FORMAT &&
|
||||
+ if (hwparams.format != default_format &&
|
||||
hwparams.format != native_format)
|
||||
fprintf(stderr, _("Warning: format is changed to %s\n"),
|
||||
snd_pcm_format_name(native_format));
|
||||
@@ -1087,7 +1112,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size)
|
||||
native_format = SND_PCM_FORMAT_S24_3BE;
|
||||
else
|
||||
native_format = SND_PCM_FORMAT_S24_3LE;
|
||||
- if (hwparams.format != DEFAULT_FORMAT &&
|
||||
+ if (hwparams.format != default_format &&
|
||||
hwparams.format != native_format)
|
||||
fprintf(stderr, _("Warning: format is changed to %s\n"),
|
||||
snd_pcm_format_name(native_format));
|
||||
@@ -1098,7 +1123,7 @@ static ssize_t test_wavefile(int fd, u_char *_buffer, size_t size)
|
||||
native_format = SND_PCM_FORMAT_S24_BE;
|
||||
else
|
||||
native_format = SND_PCM_FORMAT_S24_LE;
|
||||
- if (hwparams.format != DEFAULT_FORMAT &&
|
||||
+ if (hwparams.format != default_format &&
|
||||
hwparams.format != native_format)
|
||||
fprintf(stderr, _("Warning: format is changed to %s\n"),
|
||||
snd_pcm_format_name(native_format));
|
||||
@@ -1184,19 +1209,19 @@ static int test_au(int fd, void *buffer)
|
||||
pbrec_count = BE_INT(ap->data_size);
|
||||
switch (BE_INT(ap->encoding)) {
|
||||
case AU_FMT_ULAW:
|
||||
- if (hwparams.format != DEFAULT_FORMAT &&
|
||||
+ if (hwparams.format != default_format &&
|
||||
hwparams.format != SND_PCM_FORMAT_MU_LAW)
|
||||
fprintf(stderr, _("Warning: format is changed to MU_LAW\n"));
|
||||
hwparams.format = SND_PCM_FORMAT_MU_LAW;
|
||||
break;
|
||||
case AU_FMT_LIN8:
|
||||
- if (hwparams.format != DEFAULT_FORMAT &&
|
||||
+ if (hwparams.format != default_format &&
|
||||
hwparams.format != SND_PCM_FORMAT_U8)
|
||||
fprintf(stderr, _("Warning: format is changed to U8\n"));
|
||||
hwparams.format = SND_PCM_FORMAT_U8;
|
||||
break;
|
||||
case AU_FMT_LIN16:
|
||||
- if (hwparams.format != DEFAULT_FORMAT &&
|
||||
+ if (hwparams.format != default_format &&
|
||||
hwparams.format != SND_PCM_FORMAT_S16_BE)
|
||||
fprintf(stderr, _("Warning: format is changed to S16_BE\n"));
|
||||
hwparams.format = SND_PCM_FORMAT_S16_BE;
|
||||
@@ -2315,7 +2340,7 @@ static void voc_play(int fd, int ofs, char *name)
|
||||
prg_exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
- hwparams.format = DEFAULT_FORMAT;
|
||||
+ hwparams.format = default_format;
|
||||
hwparams.channels = 1;
|
||||
hwparams.rate = DEFAULT_SPEED;
|
||||
set_params();
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,30 +0,0 @@
|
||||
From 737b64e1940b29c575be3942cd9f87aa390d93b2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=E7=A9=8D=E4=B8=B9=E5=B0=BC=20Dan=20Jacobson?=
|
||||
<jidanni@jidanni.org>
|
||||
Date: Sun, 18 Oct 2020 18:33:54 +0800
|
||||
Subject: [PATCH 02/25] alsamixer: Fix the mixer views description in man page
|
||||
|
||||
Fix grammar mess.
|
||||
|
||||
From: Dan Jacobson <jidanni@jidanni.org>
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
alsamixer/alsamixer.1 | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/alsamixer/alsamixer.1 b/alsamixer/alsamixer.1
|
||||
index 8d34680a585e..2d711cf15264 100644
|
||||
--- a/alsamixer/alsamixer.1
|
||||
+++ b/alsamixer/alsamixer.1
|
||||
@@ -34,7 +34,7 @@ Toggle the using of colors.
|
||||
|
||||
.SH MIXER VIEWS
|
||||
|
||||
-The top-left corner of \fBalsamixer\fP is the are to show some basic
|
||||
+The top-left corner of \fBalsamixer\fP shows some basic
|
||||
information: the card name, the mixer chip name, the current view
|
||||
mode and the currently selected mixer item.
|
||||
When the mixer item is switched off, \fI[Off]\fP is displayed in its
|
||||
--
|
||||
2.26.2
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,27 +0,0 @@
|
||||
From 986a1bd3d2eebd41a2925969826fca870b2cd330 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 23 Oct 2020 12:05:56 +0200
|
||||
Subject: [PATCH 06/25] aplay: cosmetic code fix in xrun()
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
aplay/aplay.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
||||
index a27220d8fd03..ae609880bfd7 100644
|
||||
--- a/aplay/aplay.c
|
||||
+++ b/aplay/aplay.c
|
||||
@@ -1676,7 +1676,8 @@ static void xrun(void)
|
||||
prg_exit(EXIT_FAILURE);
|
||||
}
|
||||
return; /* ok, data should be accepted again */
|
||||
- } if (snd_pcm_status_get_state(status) == SND_PCM_STATE_DRAINING) {
|
||||
+ }
|
||||
+ if (snd_pcm_status_get_state(status) == SND_PCM_STATE_DRAINING) {
|
||||
if (verbose) {
|
||||
fprintf(stderr, _("Status(DRAINING):\n"));
|
||||
snd_pcm_status_dump(status, log);
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,59 +0,0 @@
|
||||
From c1b92db5ef01311e5fc983f3134caa00826d0c2d Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Sun, 8 Nov 2020 19:11:12 +0100
|
||||
Subject: [PATCH 07/25] aplay: fix the CPU busy loop in the pause handler
|
||||
|
||||
Use the standard poll mechanism to ensure that there's
|
||||
something in the input to avoid busy loop on the file
|
||||
descriptor with the non-block mode set.
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
aplay/aplay.c | 17 +++++++++++++++--
|
||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
||||
index ae609880bfd7..d385da25fea1 100644
|
||||
--- a/aplay/aplay.c
|
||||
+++ b/aplay/aplay.c
|
||||
@@ -1553,6 +1553,19 @@ static void done_stdin(void)
|
||||
tcsetattr(fileno(stdin), TCSANOW, &term);
|
||||
}
|
||||
|
||||
+static char wait_for_input(void)
|
||||
+{
|
||||
+ struct pollfd pfd;
|
||||
+ unsigned char b;
|
||||
+
|
||||
+ do {
|
||||
+ pfd.fd = fileno(stdin);
|
||||
+ pfd.events = POLLIN;
|
||||
+ poll(&pfd, 1, -1);
|
||||
+ } while (read(fileno(stdin), &b, 1) != 1);
|
||||
+ return b;
|
||||
+}
|
||||
+
|
||||
static void do_pause(void)
|
||||
{
|
||||
int err;
|
||||
@@ -1571,7 +1584,7 @@ static void do_pause(void)
|
||||
return;
|
||||
}
|
||||
while (1) {
|
||||
- while (read(fileno(stdin), &b, 1) != 1);
|
||||
+ b = wait_for_input();
|
||||
if (b == ' ' || b == '\r') {
|
||||
while (read(fileno(stdin), &b, 1) == 1);
|
||||
if (snd_pcm_state(handle) == SND_PCM_STATE_SUSPENDED)
|
||||
@@ -1596,7 +1609,7 @@ static void check_stdin(void)
|
||||
while (read(fileno(stdin), &b, 1) == 1);
|
||||
fprintf(stderr, _("\r=== PAUSE === "));
|
||||
fflush(stderr);
|
||||
- do_pause();
|
||||
+ do_pause();
|
||||
fprintf(stderr, " \r");
|
||||
fflush(stderr);
|
||||
}
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,68 +0,0 @@
|
||||
From 5812f37d877c12bc594b9ffddc493d305991963a Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Wed, 9 Dec 2020 18:35:49 +0100
|
||||
Subject: [PATCH 08/25] alsa-info: Add lsusb and stream outputs
|
||||
|
||||
We need more detailed information for USB-audio devices, at least the
|
||||
lsusb -v output and the contents of stream* proc files.
|
||||
Let's add them to alsa-info.sh output.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
alsa-info/alsa-info.sh | 33 +++++++++++++++++++++++++++++++++
|
||||
1 file changed, 33 insertions(+)
|
||||
|
||||
diff --git a/alsa-info/alsa-info.sh b/alsa-info/alsa-info.sh
|
||||
index f179bfab8655..3871b97a2268 100755
|
||||
--- a/alsa-info/alsa-info.sh
|
||||
+++ b/alsa-info/alsa-info.sh
|
||||
@@ -476,6 +476,18 @@ cat /proc/asound/card*/codec\#* > $TEMPDIR/alsa-hda-intel.tmp 2> /dev/null
|
||||
cat /proc/asound/card*/codec97\#0/ac97\#0-0 > $TEMPDIR/alsa-ac97.tmp 2> /dev/null
|
||||
cat /proc/asound/card*/codec97\#0/ac97\#0-0+regs > $TEMPDIR/alsa-ac97-regs.tmp 2> /dev/null
|
||||
|
||||
+#Check for USB descriptors
|
||||
+if [ -x /usr/bin/lsusb ]; then
|
||||
+ for f in /proc/asound/card[0-9]*/usbbus; do
|
||||
+ test -f "$f" || continue
|
||||
+ id=$(sed 's@/@:@' $f)
|
||||
+ lsusb -v -s $id >> $TEMPDIR/lsusb.tmp 2> /dev/null
|
||||
+ done
|
||||
+fi
|
||||
+
|
||||
+#Check for USB stream setup
|
||||
+cat /proc/asound/card*/stream[0-9]* > $TEMPDIR/alsa-usbstream.tmp 2> /dev/null
|
||||
+
|
||||
#Check for USB mixer setup
|
||||
cat /proc/asound/card*/usbmixer > $TEMPDIR/alsa-usbmixer.tmp 2> /dev/null
|
||||
|
||||
@@ -649,6 +661,27 @@ if [ -s "$TEMPDIR/alsa-ac97.tmp" ]; then
|
||||
echo "" >> $FILE
|
||||
fi
|
||||
|
||||
+if [ -s "$TEMPDIR/lsusb.tmp" ]; then
|
||||
+ echo "!!USB Descriptors" >> $FILE
|
||||
+ echo "!!---------------" >> $FILE
|
||||
+ echo "--startcollapse--" >> $FILE
|
||||
+ cat $TEMPDIR/lsusb.tmp >> $FILE
|
||||
+ echo "--endcollapse--" >> $FILE
|
||||
+ echo "" >> $FILE
|
||||
+ echo "" >> $FILE
|
||||
+fi
|
||||
+
|
||||
+if [ -s "$TEMPDIR/lsusb.tmp" ]; then
|
||||
+ echo "!!USB Stream information" >> $FILE
|
||||
+ echo "!!----------------------" >> $FILE
|
||||
+ echo "--startcollapse--" >> $FILE
|
||||
+ echo "" >> $FILE
|
||||
+ cat $TEMPDIR/alsa-usbstream.tmp >> $FILE
|
||||
+ echo "--endcollapse--" >> $FILE
|
||||
+ echo "" >> $FILE
|
||||
+ echo "" >> $FILE
|
||||
+fi
|
||||
+
|
||||
if [ -s "$TEMPDIR/alsa-usbmixer.tmp" ]; then
|
||||
echo "!!USB Mixer information" >> $FILE
|
||||
echo "!!---------------------" >> $FILE
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,29 +0,0 @@
|
||||
From 878e1a7c0f03233530e7675ae015aced069c971d Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Fri, 11 Dec 2020 23:41:59 +0100
|
||||
Subject: [PATCH] alsactl: Fix double decrease of lock timeout
|
||||
|
||||
The state_lock() has a loop to wait for the lock file creation, and
|
||||
the timeout value gets decremented twice mistakenly, which leads to a
|
||||
half timeout (5 seconds) than expected 10 seconds. Fix it.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
alsactl/lock.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/alsactl/lock.c b/alsactl/lock.c
|
||||
index 4a485392b3bd..05f6e4d2a102 100644
|
||||
--- a/alsactl/lock.c
|
||||
+++ b/alsactl/lock.c
|
||||
@@ -63,7 +63,6 @@ static int state_lock_(const char *file, int lock, int timeout, int _fd)
|
||||
if (fd < 0) {
|
||||
if (errno == EBUSY || errno == EAGAIN) {
|
||||
sleep(1);
|
||||
- timeout--;
|
||||
} else {
|
||||
err = -errno;
|
||||
goto out;
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,47 +0,0 @@
|
||||
From c53f7cd03881092d5a61505d23ab8f920b7faf12 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Fri, 11 Dec 2020 23:46:23 +0100
|
||||
Subject: [PATCH] alsactl: Fix race at creating a lock file
|
||||
|
||||
A race at creating a lock file in state_lock() was discovered
|
||||
recently: namely, between the first open(O_RDWR) and the second
|
||||
open(O_RDWR|O_CREAT|O_EXCL) calls, another alsactl invocation may
|
||||
already create a lock file, then the second open() will return EEXIST,
|
||||
which isn't handled properly and treated as a fatal error.
|
||||
|
||||
In this patch, we check EEXIST case and try again open() with O_RDWR.
|
||||
This must succeed usually, and if it fails, handle finally as the
|
||||
fatal error.
|
||||
|
||||
BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1179904
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
alsactl/lock.c | 11 ++++++++---
|
||||
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/alsactl/lock.c b/alsactl/lock.c
|
||||
index 05f6e4d2a102..5b4746231996 100644
|
||||
--- a/alsactl/lock.c
|
||||
+++ b/alsactl/lock.c
|
||||
@@ -63,10 +63,15 @@ static int state_lock_(const char *file, int lock, int timeout, int _fd)
|
||||
if (fd < 0) {
|
||||
if (errno == EBUSY || errno == EAGAIN) {
|
||||
sleep(1);
|
||||
- } else {
|
||||
- err = -errno;
|
||||
- goto out;
|
||||
+ continue;
|
||||
}
|
||||
+ if (errno == EEXIST) {
|
||||
+ fd = open(nfile, O_RDWR);
|
||||
+ if (fd >= 0)
|
||||
+ break;
|
||||
+ }
|
||||
+ err = -errno;
|
||||
+ goto out;
|
||||
}
|
||||
}
|
||||
}
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,33 +0,0 @@
|
||||
From 12487b40b6e7230a003eb6e4333ee820d8578592 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Fri, 11 Dec 2020 23:55:34 +0100
|
||||
Subject: [PATCH ] alsactl: Remove asound.state file check from alsa-restore.service again
|
||||
|
||||
We added the check of asound.state file presence some time ago to
|
||||
assure that alsactl gets called only if the state file is already
|
||||
present. Since then, the situation has changed significantly:
|
||||
e.g. now alsactl does initialize if the state file isn't present, and
|
||||
the same alsa-restore.service is used to save the state. This means
|
||||
that we should start this service no matter the state file exists at
|
||||
the boot time or not. So, revert the old change again.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
alsactl/alsa-restore.service.in | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/alsactl/alsa-restore.service.in b/alsactl/alsa-restore.service.in
|
||||
index a84c2e842444..80fd5fd48203 100644
|
||||
--- a/alsactl/alsa-restore.service.in
|
||||
+++ b/alsactl/alsa-restore.service.in
|
||||
@@ -7,7 +7,6 @@
|
||||
Description=Save/Restore Sound Card State
|
||||
ConditionPathExists=!@daemonswitch@
|
||||
ConditionPathExistsGlob=/dev/snd/control*
|
||||
-ConditionPathExists=@asoundrcfile@
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,108 +0,0 @@
|
||||
From 76bc37aeb77d51f995e223582d25335cd98b2eea Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Sun, 3 Jan 2021 17:19:03 +0100
|
||||
Subject: [PATCH 13/25] aplay: add test code for snd_pcm_status() to
|
||||
--test-position
|
||||
|
||||
We need to test also snd_pcm_status() values.
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
aplay/aplay.c | 48 ++++++++++++++++++++++++++++++++++++++----------
|
||||
1 file changed, 38 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
||||
index d385da25fea1..5a6d5c33102c 100644
|
||||
--- a/aplay/aplay.c
|
||||
+++ b/aplay/aplay.c
|
||||
@@ -1953,22 +1953,38 @@ static void do_test_position(void)
|
||||
static snd_pcm_sframes_t minavail, mindelay;
|
||||
static snd_pcm_sframes_t badavail = 0, baddelay = 0;
|
||||
snd_pcm_sframes_t outofrange;
|
||||
- snd_pcm_sframes_t avail, delay;
|
||||
+ snd_pcm_sframes_t avail, delay, savail, sdelay;
|
||||
+ snd_pcm_status_t *status;
|
||||
int err;
|
||||
|
||||
+ snd_pcm_status_alloca(&status);
|
||||
err = snd_pcm_avail_delay(handle, &avail, &delay);
|
||||
if (err < 0)
|
||||
return;
|
||||
+ err = snd_pcm_status(handle, status);
|
||||
+ if (err < 0)
|
||||
+ return;
|
||||
+ savail = snd_pcm_status_get_avail(status);
|
||||
+ sdelay = snd_pcm_status_get_delay(status);
|
||||
outofrange = (test_coef * (snd_pcm_sframes_t)buffer_frames) / 2;
|
||||
if (avail > outofrange || avail < -outofrange ||
|
||||
delay > outofrange || delay < -outofrange) {
|
||||
- badavail = avail; baddelay = delay;
|
||||
- availsum = delaysum = samples = 0;
|
||||
- maxavail = maxdelay = 0;
|
||||
- minavail = mindelay = buffer_frames * 16;
|
||||
- fprintf(stderr, _("Suspicious buffer position (%li total): "
|
||||
- "avail = %li, delay = %li, buffer = %li\n"),
|
||||
- ++counter, (long)avail, (long)delay, (long)buffer_frames);
|
||||
+ badavail = avail; baddelay = delay;
|
||||
+ availsum = delaysum = samples = 0;
|
||||
+ maxavail = maxdelay = 0;
|
||||
+ minavail = mindelay = buffer_frames * 16;
|
||||
+ fprintf(stderr, _("Suspicious buffer position (%li total): "
|
||||
+ "avail = %li, delay = %li, buffer = %li\n"),
|
||||
+ ++counter, (long)avail, (long)delay, (long)buffer_frames);
|
||||
+ } else if (savail > outofrange || savail < -outofrange ||
|
||||
+ sdelay > outofrange || sdelay < -outofrange) {
|
||||
+ badavail = savail; baddelay = sdelay;
|
||||
+ availsum = delaysum = samples = 0;
|
||||
+ maxavail = maxdelay = 0;
|
||||
+ minavail = mindelay = buffer_frames * 16;
|
||||
+ fprintf(stderr, _("Suspicious status buffer position (%li total): "
|
||||
+ "avail = %li, delay = %li, buffer = %li\n"),
|
||||
+ ++counter, (long)savail, (long)sdelay, (long)buffer_frames);
|
||||
} else if (verbose) {
|
||||
time(&now);
|
||||
if (tmr == (time_t) -1) {
|
||||
@@ -1979,19 +1995,27 @@ static void do_test_position(void)
|
||||
}
|
||||
if (avail > maxavail)
|
||||
maxavail = avail;
|
||||
+ if (savail > maxavail)
|
||||
+ maxavail = savail;
|
||||
if (delay > maxdelay)
|
||||
maxdelay = delay;
|
||||
+ if (sdelay > maxdelay)
|
||||
+ maxdelay = sdelay;
|
||||
if (avail < minavail)
|
||||
minavail = avail;
|
||||
+ if (savail < minavail)
|
||||
+ minavail = savail;
|
||||
if (delay < mindelay)
|
||||
mindelay = delay;
|
||||
+ if (sdelay < mindelay)
|
||||
+ mindelay = sdelay;
|
||||
availsum += avail;
|
||||
delaysum += delay;
|
||||
samples++;
|
||||
- if (avail != 0 && now != tmr) {
|
||||
+ if ((maxavail != 0 || maxdelay != 0) && now != tmr) {
|
||||
fprintf(stderr, "BUFPOS: avg%li/%li "
|
||||
"min%li/%li max%li/%li (%li) (%li:%li/%li)\n",
|
||||
- (long)(availsum / samples),
|
||||
+ (long)(availsum / samples),
|
||||
(long)(delaysum / samples),
|
||||
(long)minavail, (long)mindelay,
|
||||
(long)maxavail, (long)maxdelay,
|
||||
@@ -2000,6 +2024,10 @@ static void do_test_position(void)
|
||||
tmr = now;
|
||||
}
|
||||
}
|
||||
+ if (verbose == 1) {
|
||||
+ fprintf(stderr, _("Status(R/W) (standalone avail=%li delay=%li):\n"), (long)avail, (long)delay);
|
||||
+ snd_pcm_status_dump(status, log);
|
||||
+ }
|
||||
}
|
||||
|
||||
/*
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,29 +0,0 @@
|
||||
From 03e98d280678563acbfece12eab4b571026226b1 Mon Sep 17 00:00:00 2001
|
||||
From: Curtis Malainey <cujomalainey@chromium.org>
|
||||
Date: Wed, 6 Jan 2021 16:23:23 -0800
|
||||
Subject: [PATCH 14/25] ucm: fix typo in docs
|
||||
|
||||
Do you know the tstaus of this fix?
|
||||
|
||||
Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
alsaucm/alsaucm.rst | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/alsaucm/alsaucm.rst b/alsaucm/alsaucm.rst
|
||||
index 7890ba5377b8..3098672d3d55 100644
|
||||
--- a/alsaucm/alsaucm.rst
|
||||
+++ b/alsaucm/alsaucm.rst
|
||||
@@ -122,7 +122,7 @@ Available commands:
|
||||
the value of the `IDENTIFIER` argument can can be:
|
||||
|
||||
- ``_devstatus/{device}``
|
||||
- - ``_modtstaus/{device}``
|
||||
+ - ``_modstatus/{device}``
|
||||
|
||||
``set`` `IDENTIFIER` `VALUE`
|
||||
set string value
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,32 +0,0 @@
|
||||
From 05ebe64b2dd82fd053d7e4cbc709004e240ac13f Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Mon, 4 Jan 2021 12:13:03 +0100
|
||||
Subject: [PATCH 15/25] aplay: add avail > delay checks to --test-position
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
aplay/aplay.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
||||
index 5a6d5c33102c..b75be6c55794 100644
|
||||
--- a/aplay/aplay.c
|
||||
+++ b/aplay/aplay.c
|
||||
@@ -1985,6 +1985,14 @@ static void do_test_position(void)
|
||||
fprintf(stderr, _("Suspicious status buffer position (%li total): "
|
||||
"avail = %li, delay = %li, buffer = %li\n"),
|
||||
++counter, (long)savail, (long)sdelay, (long)buffer_frames);
|
||||
+ } else if (avail > delay) {
|
||||
+ fprintf(stderr, _("Suspicious buffer position avail > delay (%li total): "
|
||||
+ "avail = %li, delay = %li\n"),
|
||||
+ ++counter, (long)avail, (long)delay);
|
||||
+ } else if (savail > sdelay) {
|
||||
+ fprintf(stderr, _("Suspicious status buffer position avail > delay (%li total): "
|
||||
+ "avail = %li, delay = %li\n"),
|
||||
+ ++counter, (long)savail, (long)sdelay);
|
||||
} else if (verbose) {
|
||||
time(&now);
|
||||
if (tmr == (time_t) -1) {
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,27 +0,0 @@
|
||||
From 42ca978078e09eb7e0044d2d8453b1a9cb69d9fe Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 8 Jan 2021 18:07:57 +0100
|
||||
Subject: [PATCH 16/25] alsactl: daemon - read_pid_file() fix the returned code
|
||||
on read error
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
alsactl/daemon.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/alsactl/daemon.c b/alsactl/daemon.c
|
||||
index 65f7ac1cdd0a..ee03991ef5f1 100644
|
||||
--- a/alsactl/daemon.c
|
||||
+++ b/alsactl/daemon.c
|
||||
@@ -284,7 +284,7 @@ static long read_pid_file(const char *pidfile)
|
||||
err = err < 0 ? -errno : -EIO;
|
||||
close(fd);
|
||||
pid_txt[11] = '\0';
|
||||
- return atol(pid_txt);
|
||||
+ return err < 0 ? err : atol(pid_txt);
|
||||
} else {
|
||||
return -errno;
|
||||
}
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,36 +0,0 @@
|
||||
From e55534d8a5f05a6650d3147867bbcb7bb70e64cd Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 8 Jan 2021 18:15:43 +0100
|
||||
Subject: [PATCH 17/25] alsactl: init - set_ctl_value() - fix bytes parsing
|
||||
|
||||
Use the correct error value handling from hextodigit().
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
alsactl/init_parse.c | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/alsactl/init_parse.c b/alsactl/init_parse.c
|
||||
index ee9cc6d8f1b1..58b46f42de4b 100644
|
||||
--- a/alsactl/init_parse.c
|
||||
+++ b/alsactl/init_parse.c
|
||||
@@ -465,12 +465,13 @@ static int set_ctl_value(struct space *space, const char *value, int all)
|
||||
return -EINVAL;
|
||||
}
|
||||
for (idx = 0; idx < count; idx += 2) {
|
||||
- val = hextodigit(*(value++)) << 4;
|
||||
- val |= hextodigit(*(value++));
|
||||
- if (val > 255) {
|
||||
+ int nibble1 = hextodigit(*(value++));
|
||||
+ int nibble2 = hextodigit(*(value++));
|
||||
+ if (nibble1 < 0 || nibble2 < 0) {
|
||||
Perror(space, "bad ctl hexa value");
|
||||
return -EINVAL;
|
||||
}
|
||||
+ val = (nibble1 << 4) | nibble2;
|
||||
snd_ctl_elem_value_set_byte(space->ctl_value, idx, val);
|
||||
}
|
||||
break;
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,25 +0,0 @@
|
||||
From c5ecfd97894b429712d334eb91fa46e687b5ed0f Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 8 Jan 2021 18:18:53 +0100
|
||||
Subject: [PATCH 18/25] alsactl: init - parse() - fix possible double free
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
alsactl/init_parse.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/alsactl/init_parse.c b/alsactl/init_parse.c
|
||||
index 58b46f42de4b..71348da3729c 100644
|
||||
--- a/alsactl/init_parse.c
|
||||
+++ b/alsactl/init_parse.c
|
||||
@@ -1701,6 +1701,7 @@ static int parse(struct space *space, const char *filename)
|
||||
|
||||
if (count > linesize - 1) {
|
||||
free(line);
|
||||
+ line = NULL;
|
||||
linesize = (count + 127 + 1) & ~127;
|
||||
if (linesize > 2048) {
|
||||
error("file %s, line %i too long", filename, linenum);
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,38 +0,0 @@
|
||||
From 90bbeb1d3ee892be97560c069b22ecab4bb2bf6a Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 8 Jan 2021 18:21:39 +0100
|
||||
Subject: [PATCH 19/25] alsaloop: fix possible memory leak in
|
||||
create_loopback_handle()
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
alsaloop/alsaloop.c | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/alsaloop/alsaloop.c b/alsaloop/alsaloop.c
|
||||
index 6a9ce58813ce..06ffadfb1911 100644
|
||||
--- a/alsaloop/alsaloop.c
|
||||
+++ b/alsaloop/alsaloop.c
|
||||
@@ -85,12 +85,17 @@ static int create_loopback_handle(struct loopback_handle **_handle,
|
||||
if (device == NULL)
|
||||
device = "hw:0,0";
|
||||
handle->device = strdup(device);
|
||||
- if (handle->device == NULL)
|
||||
+ if (handle->device == NULL) {
|
||||
+ free(handle);
|
||||
return -ENOMEM;
|
||||
+ }
|
||||
if (ctldev) {
|
||||
handle->ctldev = strdup(ctldev);
|
||||
- if (handle->ctldev == NULL)
|
||||
+ if (handle->ctldev == NULL) {
|
||||
+ free(handle->device);
|
||||
+ free(handle);
|
||||
return -ENOMEM;
|
||||
+ }
|
||||
} else {
|
||||
handle->ctldev = NULL;
|
||||
}
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,28 +0,0 @@
|
||||
From c9b4293212a4b67a5cf3c27a65ecbe466f773e61 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 8 Jan 2021 18:29:56 +0100
|
||||
Subject: [PATCH 20/25] alsaloop: get_queued_playback_samples() - simplify code
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
alsaloop/pcmjob.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/alsaloop/pcmjob.c b/alsaloop/pcmjob.c
|
||||
index 6a9aff4dd49a..01e01994c00d 100644
|
||||
--- a/alsaloop/pcmjob.c
|
||||
+++ b/alsaloop/pcmjob.c
|
||||
@@ -1698,9 +1698,8 @@ int pcmjob_pollfds_init(struct loopback *loop, struct pollfd *fds)
|
||||
static snd_pcm_sframes_t get_queued_playback_samples(struct loopback *loop)
|
||||
{
|
||||
snd_pcm_sframes_t delay;
|
||||
- int err;
|
||||
|
||||
- if ((err = snd_pcm_delay(loop->play->handle, &delay)) < 0)
|
||||
+ if (snd_pcm_delay(loop->play->handle, &delay) < 0)
|
||||
return 0;
|
||||
loop->play->last_delay = delay;
|
||||
delay += loop->play->buf_count;
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,29 +0,0 @@
|
||||
From 88513212c564fb8cbcbbb43f433d73cb4db786e5 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 8 Jan 2021 18:33:28 +0100
|
||||
Subject: [PATCH 21/25] topology: fix possible double free in load()
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
topology/topology.c | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/topology/topology.c b/topology/topology.c
|
||||
index d52b1452fdc2..c2f094324266 100644
|
||||
--- a/topology/topology.c
|
||||
+++ b/topology/topology.c
|
||||
@@ -100,10 +100,8 @@ static int load(const char *source_file, void **dst, size_t *dst_size)
|
||||
pos += r;
|
||||
size += 8*1024;
|
||||
buf2 = realloc(buf, size);
|
||||
- if (buf2 == NULL) {
|
||||
- free(buf);
|
||||
+ if (buf2 == NULL)
|
||||
goto _nomem;
|
||||
- }
|
||||
buf = buf2;
|
||||
}
|
||||
if (r < 0) {
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,39 +0,0 @@
|
||||
From b0c4ed248e9f543afe671e253fe1bb285df06477 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Mon, 11 Jan 2021 10:40:53 +0100
|
||||
Subject: [PATCH 22/25] alsamixer: remove dead fcn widget_handle_key() in
|
||||
widget.c
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
alsamixer/widget.c | 7 -------
|
||||
1 file changed, 7 deletions(-)
|
||||
|
||||
diff --git a/alsamixer/widget.c b/alsamixer/widget.c
|
||||
index 17f3aceef35a..5fedaba974eb 100644
|
||||
--- a/alsamixer/widget.c
|
||||
+++ b/alsamixer/widget.c
|
||||
@@ -29,10 +29,6 @@ int screen_cols;
|
||||
|
||||
static int cursor_visibility = -1;
|
||||
|
||||
-static void widget_handle_key(int key)
|
||||
-{
|
||||
-}
|
||||
-
|
||||
static void update_cursor_visibility(void)
|
||||
{
|
||||
const struct widget *active_widget;
|
||||
@@ -87,9 +83,6 @@ void widget_init(struct widget *widget, int lines_, int cols, int y, int x,
|
||||
set_panel_userptr(widget->panel, widget);
|
||||
}
|
||||
|
||||
- //if (!widget->handle_key)
|
||||
- // widget->handle_key = widget_handle_key;
|
||||
-
|
||||
if (old_window)
|
||||
delwin(old_window);
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,27 +0,0 @@
|
||||
From e165d3413e911b32441a0311d0ec0f280748e22b Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Mon, 11 Jan 2021 10:41:32 +0100
|
||||
Subject: [PATCH 23/25] alsamixer: remove unused variable y in
|
||||
display_scroll_indicators()
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
alsamixer/mixer_display.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/alsamixer/mixer_display.c b/alsamixer/mixer_display.c
|
||||
index 882781de5f49..330fdd5378e8 100644
|
||||
--- a/alsamixer/mixer_display.c
|
||||
+++ b/alsamixer/mixer_display.c
|
||||
@@ -634,7 +634,7 @@ static void display_control(unsigned int control_index)
|
||||
|
||||
static void display_scroll_indicators(void)
|
||||
{
|
||||
- int y0, y1, y;
|
||||
+ int y0, y1;
|
||||
chtype left, right;
|
||||
|
||||
if (screen_too_small)
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,35 +0,0 @@
|
||||
From 19cc5daef42c84bdadbaa25d1c4e1da33eeae3cc Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Mon, 11 Jan 2021 10:44:38 +0100
|
||||
Subject: [PATCH 24/25] alsamixer: fix shift in parse_words()
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
alsamixer/configparser.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/alsamixer/configparser.c b/alsamixer/configparser.c
|
||||
index 93aa72afd04d..7647987f84d6 100644
|
||||
--- a/alsamixer/configparser.c
|
||||
+++ b/alsamixer/configparser.c
|
||||
@@ -155,7 +155,7 @@ const char *mixer_words =
|
||||
static unsigned int parse_words(const char *name, const char* wordlist, unsigned int itemlen, unsigned int *number) {
|
||||
unsigned int words = 0;
|
||||
unsigned int word;
|
||||
- unsigned int i;
|
||||
+ int i;
|
||||
char buf[16];
|
||||
char *endptr;
|
||||
|
||||
@@ -181,7 +181,7 @@ static unsigned int parse_words(const char *name, const char* wordlist, unsigned
|
||||
word = W_NUMBER;
|
||||
}
|
||||
else if ((i = strlist_index(wordlist, itemlen, buf)) >= 0)
|
||||
- word = 2U << i;
|
||||
+ word = i <= 30 ? (2U << i) : 0;
|
||||
else
|
||||
return 0;
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,34 +0,0 @@
|
||||
From b8a1e95773227e2b4942d2f67cc10f7d133d75ad Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Tue, 19 Jan 2021 12:36:28 +0100
|
||||
Subject: [PATCH 25/25] aplay: fix the test position test for playback (avail >
|
||||
delay)
|
||||
|
||||
The avail > delay condition is invalid only for capture, of course.
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
aplay/aplay.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
||||
index b75be6c55794..9c827f468d5a 100644
|
||||
--- a/aplay/aplay.c
|
||||
+++ b/aplay/aplay.c
|
||||
@@ -1985,11 +1985,11 @@ static void do_test_position(void)
|
||||
fprintf(stderr, _("Suspicious status buffer position (%li total): "
|
||||
"avail = %li, delay = %li, buffer = %li\n"),
|
||||
++counter, (long)savail, (long)sdelay, (long)buffer_frames);
|
||||
- } else if (avail > delay) {
|
||||
+ } else if (stream == SND_PCM_STREAM_CAPTURE && avail > delay) {
|
||||
fprintf(stderr, _("Suspicious buffer position avail > delay (%li total): "
|
||||
"avail = %li, delay = %li\n"),
|
||||
++counter, (long)avail, (long)delay);
|
||||
- } else if (savail > sdelay) {
|
||||
+ } else if (stream == SND_PCM_STREAM_CAPTURE && savail > sdelay) {
|
||||
fprintf(stderr, _("Suspicious status buffer position avail > delay (%li total): "
|
||||
"avail = %li, delay = %li\n"),
|
||||
++counter, (long)savail, (long)sdelay);
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:98ffc2d599de0577d423a48fa5f20a992ca0b82d812ed1f2e58ade49ac6da426
|
||||
size 1286259
|
3
alsa-utils-1.2.5.1.tar.bz2
Normal file
3
alsa-utils-1.2.5.1.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9c169ae37a49295f9b97b92ace772803daf6b6510a19574e0b78f87e562118d0
|
||||
size 1326965
|
@ -1,3 +1,37 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 14 15:04:57 CEST 2021 - tiwai@suse.de
|
||||
|
||||
- Update to alsa-utils 1.2.5:
|
||||
a major version up, including previous patches
|
||||
https://www.alsa-project.org/wiki/Changes_v1.2.4_v1.2.5
|
||||
- Update to alsa-utils 1.2.5.1:
|
||||
a small bugfix release
|
||||
https://www.alsa-project.org/wiki/Changes_v1.2.5_v1.2.5.1
|
||||
- Drop the obsoleted patches:
|
||||
0001-aplay-try-to-use-16-bit-format-to-increase-capture-q.patch
|
||||
0002-alsamixer-Fix-the-mixer-views-description-in-man-pag.patch
|
||||
0003-Add-Slovak-translation.patch
|
||||
0004-Add-Basque-translation.patch
|
||||
0006-aplay-cosmetic-code-fix-in-xrun.patch
|
||||
0007-aplay-fix-the-CPU-busy-loop-in-the-pause-handler.patch
|
||||
0008-alsa-info-Add-lsusb-and-stream-outputs.patch
|
||||
0010-alsactl-Fix-double-decrease-of-lock-timeout.patch
|
||||
0011-alsactl-Fix-race-at-creating-a-lock-file.patch
|
||||
0012-alsactl-Remove-asound.state-file-check-from-alsa-res.patch
|
||||
0013-aplay-add-test-code-for-snd_pcm_status-to-test-posit.patch
|
||||
0014-ucm-fix-typo-in-docs.patch
|
||||
0015-aplay-add-avail-delay-checks-to-test-position.patch
|
||||
0016-alsactl-daemon-read_pid_file-fix-the-returned-code-o.patch
|
||||
0017-alsactl-init-set_ctl_value-fix-bytes-parsing.patch
|
||||
0018-alsactl-init-parse-fix-possible-double-free.patch
|
||||
0019-alsaloop-fix-possible-memory-leak-in-create_loopback.patch
|
||||
0020-alsaloop-get_queued_playback_samples-simplify-code.patch
|
||||
0021-topology-fix-possible-double-free-in-load.patch
|
||||
0022-alsamixer-remove-dead-fcn-widget_handle_key-in-widge.patch
|
||||
0023-alsamixer-remove-unused-variable-y-in-display_scroll.patch
|
||||
0024-alsamixer-fix-shift-in-parse_words.patch
|
||||
0025-aplay-fix-the-test-position-test-for-playback-avail-.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 26 10:34:15 CEST 2021 - tiwai@suse.de
|
||||
|
||||
|
@ -19,7 +19,7 @@
|
||||
%define do_autoreconf 1
|
||||
%define _udevdir %(pkg-config --variable=udevdir udev)
|
||||
Name: alsa-utils
|
||||
Version: 1.2.4
|
||||
Version: 1.2.5.1
|
||||
Release: 0
|
||||
Summary: Advanced Linux Sound Architecture Utilities
|
||||
License: GPL-2.0-or-later
|
||||
@ -29,29 +29,6 @@ Source: ftp://ftp.alsa-project.org/pub/utils/alsa-utils-%{version}.tar.b
|
||||
Source1: 01beep.conf
|
||||
Source2: sound-extra.service
|
||||
Source5: load-sound-modules.sh
|
||||
Patch1: 0001-aplay-try-to-use-16-bit-format-to-increase-capture-q.patch
|
||||
Patch2: 0002-alsamixer-Fix-the-mixer-views-description-in-man-pag.patch
|
||||
Patch3: 0003-Add-Slovak-translation.patch
|
||||
Patch4: 0004-Add-Basque-translation.patch
|
||||
Patch6: 0006-aplay-cosmetic-code-fix-in-xrun.patch
|
||||
Patch7: 0007-aplay-fix-the-CPU-busy-loop-in-the-pause-handler.patch
|
||||
Patch8: 0008-alsa-info-Add-lsusb-and-stream-outputs.patch
|
||||
Patch10: 0010-alsactl-Fix-double-decrease-of-lock-timeout.patch
|
||||
Patch11: 0011-alsactl-Fix-race-at-creating-a-lock-file.patch
|
||||
Patch12: 0012-alsactl-Remove-asound.state-file-check-from-alsa-res.patch
|
||||
Patch13: 0013-aplay-add-test-code-for-snd_pcm_status-to-test-posit.patch
|
||||
Patch14: 0014-ucm-fix-typo-in-docs.patch
|
||||
Patch15: 0015-aplay-add-avail-delay-checks-to-test-position.patch
|
||||
Patch16: 0016-alsactl-daemon-read_pid_file-fix-the-returned-code-o.patch
|
||||
Patch17: 0017-alsactl-init-set_ctl_value-fix-bytes-parsing.patch
|
||||
Patch18: 0018-alsactl-init-parse-fix-possible-double-free.patch
|
||||
Patch19: 0019-alsaloop-fix-possible-memory-leak-in-create_loopback.patch
|
||||
Patch20: 0020-alsaloop-get_queued_playback_samples-simplify-code.patch
|
||||
Patch21: 0021-topology-fix-possible-double-free-in-load.patch
|
||||
Patch22: 0022-alsamixer-remove-dead-fcn-widget_handle_key-in-widge.patch
|
||||
Patch23: 0023-alsamixer-remove-unused-variable-y-in-display_scroll.patch
|
||||
Patch24: 0024-alsamixer-fix-shift-in-parse_words.patch
|
||||
Patch25: 0025-aplay-fix-the-test-position-test-for-playback-avail-.patch
|
||||
Patch100: alsa-info-no-update-for-distro-script.patch
|
||||
Patch101: alsa-utils-configure-version-revert.patch
|
||||
BuildRequires: alsa-devel
|
||||
@ -95,29 +72,6 @@ and test audio before and after PM state changes.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
%patch24 -p1
|
||||
%patch25 -p1
|
||||
%patch100 -p1
|
||||
%if 0%{?do_autoreconf}
|
||||
%patch101 -p1
|
||||
|
Loading…
Reference in New Issue
Block a user