import alsa-utils-1.2.5-3.el8
This commit is contained in:
parent
cc8af08219
commit
6c9c46320f
@ -1,7 +1,7 @@
|
||||
From 78212445de4c8e07873cbc7dff2abcacd031f151 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Tue, 1 Jun 2021 17:47:42 +0200
|
||||
Subject: [PATCH 1/9] alsactl: fix the nested iteration
|
||||
Subject: [PATCH 01/16] alsactl: fix the nested iteration
|
||||
|
||||
There may be nested iterations for hw: card names.
|
||||
Handle this card name in snd_card_iterator_sinit().
|
||||
@ -33,7 +33,7 @@ index c79fd95..881b505 100644
|
||||
From 3d7a6facd9e1f962eef6c4ba3aa4cdc22477a6ac Mon Sep 17 00:00:00 2001
|
||||
From: Chao Song <chao.song@linux.intel.com>
|
||||
Date: Mon, 31 May 2021 10:29:57 +0800
|
||||
Subject: [PATCH 2/9] topology: fix potential null pointer from strchr
|
||||
Subject: [PATCH 02/16] topology: fix potential null pointer from strchr
|
||||
|
||||
This patch adds check to the return pointer from strchr,
|
||||
because it may be null and cause segment fault, if component
|
||||
@ -86,7 +86,7 @@ index 09aa375..ac8caec 100644
|
||||
From d6d566a9eebb63dd9d1351b07d385d39cdc33beb Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 4 Jun 2021 09:53:56 +0200
|
||||
Subject: [PATCH 3/9] alsactl: return error value in dump_config_tree()
|
||||
Subject: [PATCH 03/16] alsactl: return error value in dump_config_tree()
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
@ -113,7 +113,7 @@ index a011284..05738fb 100644
|
||||
From 511dd7a597735048f3883ef7883adf853ac2de4a Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 4 Jun 2021 09:56:20 +0200
|
||||
Subject: [PATCH 4/9] alsactl: init() - return error value from
|
||||
Subject: [PATCH 04/16] alsactl: init() - return error value from
|
||||
snd_card_iterator_sinit() call
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
@ -141,7 +141,8 @@ index 9d0f473..e439de7 100644
|
||||
From 2bc595e7bd9a9b8f8605104cfdb8f40a07c2655b Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 4 Jun 2021 09:58:46 +0200
|
||||
Subject: [PATCH 5/9] alsactl: check for error values from snd_config_get...()
|
||||
Subject: [PATCH 05/16] alsactl: check for error values from
|
||||
snd_config_get...()
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
@ -272,8 +273,8 @@ index 44fda3f..b3a3f4d 100644
|
||||
From 646d6ff094a82153db49af176cba3aacbde46cf6 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 4 Jun 2021 10:04:50 +0200
|
||||
Subject: [PATCH 6/9] =?UTF-8?q?alsactl:=20state=20-=20fix=20=E2=80=98item?=
|
||||
=?UTF-8?q?=E2=80=99=20may=20be=20used=20uninitialized=20gcc=20warning?=
|
||||
Subject: [PATCH 06/16] =?UTF-8?q?alsactl:=20state=20-=20fix=20=E2=80=98ite?=
|
||||
=?UTF-8?q?m=E2=80=99=20may=20be=20used=20uninitialized=20gcc=20warning?=
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
@ -303,7 +304,7 @@ index b3a3f4d..9c75688 100644
|
||||
From cd2f779b8d6439479b9802e9fd2c8af86f8702fb Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 4 Jun 2021 10:08:18 +0200
|
||||
Subject: [PATCH 7/9] alsactl: fix lock_fd unlock in load_configuration() -
|
||||
Subject: [PATCH 07/16] alsactl: fix lock_fd unlock in load_configuration() -
|
||||
error path
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
@ -342,7 +343,7 @@ index 881b505..fd4a108 100644
|
||||
From 74ad91245f8257e242cf5b5b6b809f94321f197a Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 4 Jun 2021 10:12:06 +0200
|
||||
Subject: [PATCH 8/9] axfer: fix wrong calloc() item size in
|
||||
Subject: [PATCH 08/16] axfer: fix wrong calloc() item size in
|
||||
allocate_containers()
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
@ -370,7 +371,7 @@ index 27d2cc5..839215a 100644
|
||||
From c58f981e1530557835461b17b92eac6c475e5f68 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 4 Jun 2021 10:19:22 +0200
|
||||
Subject: [PATCH 9/9] topology: fix few coverity detected defects
|
||||
Subject: [PATCH 09/16] topology: fix few coverity detected defects
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
@ -460,3 +461,476 @@ index 0458c3c..442dcc4 100644
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
||||
From f138117a457944ca73776bd752693d64ec207e55 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Mon, 7 Jun 2021 17:21:56 +0200
|
||||
Subject: [PATCH 10/16] alsactl: load_state() - initialize config variable for
|
||||
the open_failed case
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-utils/issues/93
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
alsactl/state.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/alsactl/state.c b/alsactl/state.c
|
||||
index 9c75688..439e1f8 100644
|
||||
--- a/alsactl/state.c
|
||||
+++ b/alsactl/state.c
|
||||
@@ -1642,6 +1642,7 @@ int load_state(const char *cfgdir, const char *file,
|
||||
snd_config_t *config;
|
||||
const char *cardname1;
|
||||
|
||||
+ config = NULL;
|
||||
err = load_configuration(file, &config, &open_failed);
|
||||
if (err < 0 && !open_failed)
|
||||
return err;
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
||||
From 6018c2014ac24877b2aa58c2c57f2fd901e6c7b1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
|
||||
Date: Sun, 6 Jun 2021 03:14:19 +0200
|
||||
Subject: [PATCH 11/16] alsactl: load_state: Only delete config if one was
|
||||
loaded
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
If load_configuration fails with open_failed == true, load_state will
|
||||
jump to the out label without config being initialized and pass this
|
||||
uninitialized config value to snd_config_delete. This commit fixes this
|
||||
issue by initializing config with NULL and checking if it is non-null
|
||||
before invoking snd_config_delete.
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-utils/pull/94
|
||||
Fixes: f138117 ("alsactl: load_state() - initialize config variable for the open_failed case")
|
||||
BugLink: https://github.com/alsa-project/alsa-utils/issues/93
|
||||
Signed-off-by: Sören Tempel <soeren+git@soeren-tempel.net>
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
alsactl/state.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/alsactl/state.c b/alsactl/state.c
|
||||
index 439e1f8..adbd13f 100644
|
||||
--- a/alsactl/state.c
|
||||
+++ b/alsactl/state.c
|
||||
@@ -1692,7 +1692,8 @@ int load_state(const char *cfgdir, const char *file,
|
||||
}
|
||||
err = finalerr ? finalerr : snd_card_iterator_error(&iter);
|
||||
out:
|
||||
- snd_config_delete(config);
|
||||
+ if (config)
|
||||
+ snd_config_delete(config);
|
||||
snd_config_update_free_global();
|
||||
return err;
|
||||
}
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
||||
From 6a0d13ddb2b2afb450f3404d3cbaa56253bdcab2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
|
||||
Date: Thu, 3 Jun 2021 16:07:10 +0200
|
||||
Subject: [PATCH 12/16] utils.c: Include limits.h explicitly to fix build on
|
||||
musl
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Fixes:
|
||||
| ../../alsa-utils-1.2.5/alsactl/utils.c: In function 'snd_card_clean_cfgdir':
|
||||
| ../../alsa-utils-1.2.5/alsactl/utils.c:309:19: error: 'PATH_MAX' undeclared (first use in this function)
|
||||
| 309 | char path[PATH_MAX];
|
||||
| | ^~~~~~~~
|
||||
| ../../alsa-utils-1.2.5/alsactl/utils.c:309:19: note: each undeclared identifier is reported only once for each function it appears in
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-utils/pull/92
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
alsactl/utils.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/alsactl/utils.c b/alsactl/utils.c
|
||||
index fd4a108..a507972 100644
|
||||
--- a/alsactl/utils.c
|
||||
+++ b/alsactl/utils.c
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <syslog.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/mman.h>
|
||||
+#include <limits.h>
|
||||
#include "alsactl.h"
|
||||
|
||||
int file_map(const char *filename, char **buf, size_t *bufsize)
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
||||
From 0e21f4d8643db547dcca1375a4265fce1edc4d51 Mon Sep 17 00:00:00 2001
|
||||
From: Andrea Piras <andrea.piras.85@gmail.com>
|
||||
Date: Fri, 29 Nov 2019 03:13:21 +0100
|
||||
Subject: [PATCH 13/16] added an option to aseqnet to optionally set the midi
|
||||
process name
|
||||
|
||||
This option allows to run multiple instances of aseqnet without having
|
||||
to double check the assigned port number, since each one can get spawned
|
||||
with a unique name.
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-utils/pull/95
|
||||
Signed-off-by: Andrea Piras <andrea.piras.85@gmail.com>
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
seq/aseqnet/README.aseqnet | 2 ++
|
||||
seq/aseqnet/aseqnet.1 | 3 +++
|
||||
seq/aseqnet/aseqnet.c | 26 ++++++++++++++++++--------
|
||||
3 files changed, 23 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/seq/aseqnet/README.aseqnet b/seq/aseqnet/README.aseqnet
|
||||
index bd0b68e..6a627f4 100644
|
||||
--- a/seq/aseqnet/README.aseqnet
|
||||
+++ b/seq/aseqnet/README.aseqnet
|
||||
@@ -50,4 +50,6 @@ The available options are:
|
||||
-s addr : explicit read-subscription to the given address
|
||||
(client:addr).
|
||||
-d addr : explicit write-subscription to the given address.
|
||||
+ -n name : specify the midi name of the process.
|
||||
+ Default value is either 'Net Client' or 'Net Server'.
|
||||
-v : verbose mode.
|
||||
diff --git a/seq/aseqnet/aseqnet.1 b/seq/aseqnet/aseqnet.1
|
||||
index 2cb6eb7..6ed3911 100644
|
||||
--- a/seq/aseqnet/aseqnet.1
|
||||
+++ b/seq/aseqnet/aseqnet.1
|
||||
@@ -70,6 +70,9 @@ Subscribe to the given address for read automatically.
|
||||
.B \-d addr
|
||||
Subscribe to the given address for write automatically.
|
||||
.TP
|
||||
+.B \-n name
|
||||
+Specify the midi name of the process.
|
||||
+.TP
|
||||
.B \-v
|
||||
Verbose mode.
|
||||
|
||||
diff --git a/seq/aseqnet/aseqnet.c b/seq/aseqnet/aseqnet.c
|
||||
index ebdea0b..e756e82 100644
|
||||
--- a/seq/aseqnet/aseqnet.c
|
||||
+++ b/seq/aseqnet/aseqnet.c
|
||||
@@ -37,7 +37,7 @@ static void usage(void);
|
||||
static void init_buf(void);
|
||||
static void init_pollfds(void);
|
||||
static void close_files(void);
|
||||
-static void init_seq(char *source, char *dest);
|
||||
+static void init_seq(char *source, char *dest, char *name);
|
||||
static int get_port(char *service);
|
||||
static void sigterm_exit(int sig);
|
||||
static void init_server(int port);
|
||||
@@ -87,6 +87,7 @@ static const struct option long_option[] = {
|
||||
{"port", 1, NULL, 'p'},
|
||||
{"source", 1, NULL, 's'},
|
||||
{"dest", 1, NULL, 'd'},
|
||||
+ {"name", 1, NULL, 'n'},
|
||||
{"help", 0, NULL, 'h'},
|
||||
{"verbose", 0, NULL, 'v'},
|
||||
{"info", 0, NULL, 'i'},
|
||||
@@ -98,13 +99,14 @@ int main(int argc, char **argv)
|
||||
int c;
|
||||
int port = DEFAULT_PORT;
|
||||
char *source = NULL, *dest = NULL;
|
||||
+ char *name = NULL;
|
||||
|
||||
#ifdef ENABLE_NLS
|
||||
setlocale(LC_ALL, "");
|
||||
textdomain(PACKAGE);
|
||||
#endif
|
||||
|
||||
- while ((c = getopt_long(argc, argv, "p:s:d:vi", long_option, NULL)) != -1) {
|
||||
+ while ((c = getopt_long(argc, argv, "p:s:d:n:,vi", long_option, NULL)) != -1) {
|
||||
switch (c) {
|
||||
case 'p':
|
||||
if (isdigit(*optarg))
|
||||
@@ -118,6 +120,9 @@ int main(int argc, char **argv)
|
||||
case 'd':
|
||||
dest = optarg;
|
||||
break;
|
||||
+ case 'n':
|
||||
+ name = optarg;
|
||||
+ break;
|
||||
case 'v':
|
||||
verbose++;
|
||||
break;
|
||||
@@ -134,7 +139,7 @@ int main(int argc, char **argv)
|
||||
signal(SIGTERM, sigterm_exit);
|
||||
|
||||
init_buf();
|
||||
- init_seq(source, dest);
|
||||
+ init_seq(source, dest, name);
|
||||
|
||||
if (optind >= argc) {
|
||||
server_mode = 1;
|
||||
@@ -170,6 +175,7 @@ static void usage(void)
|
||||
printf(_(" -p,--port # : specify TCP port (digit or service name)\n"));
|
||||
printf(_(" -s,--source addr : read from given addr (client:port)\n"));
|
||||
printf(_(" -d,--dest addr : write to given addr (client:port)\n"));
|
||||
+ printf(_(" -n,--name value : use a specific midi process name\n"));
|
||||
printf(_(" -v, --verbose : print verbose messages\n"));
|
||||
printf(_(" -i, --info : print certain received events\n"));
|
||||
}
|
||||
@@ -223,7 +229,7 @@ static void close_files(void)
|
||||
/*
|
||||
* initialize sequencer
|
||||
*/
|
||||
-static void init_seq(char *source, char *dest)
|
||||
+static void init_seq(char *source, char *dest, char* name)
|
||||
{
|
||||
snd_seq_addr_t addr;
|
||||
int err, counti, counto;
|
||||
@@ -252,10 +258,14 @@ static void init_seq(char *source, char *dest)
|
||||
snd_seq_nonblock(handle, 1);
|
||||
|
||||
/* set client info */
|
||||
- if (server_mode)
|
||||
- snd_seq_set_client_name(handle, "Net Server");
|
||||
- else
|
||||
- snd_seq_set_client_name(handle, "Net Client");
|
||||
+ if (name)
|
||||
+ snd_seq_set_client_name(handle, name);
|
||||
+ else {
|
||||
+ if (server_mode)
|
||||
+ snd_seq_set_client_name(handle, "Net Server");
|
||||
+ else
|
||||
+ snd_seq_set_client_name(handle, "Net Client");
|
||||
+ }
|
||||
|
||||
/* create a port */
|
||||
seq_port = snd_seq_create_simple_port(handle, "Network",
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
||||
From f35b66d8f1c5e3c551981723ed242e48c62ad97f Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Mon, 14 Jun 2021 12:02:35 +0200
|
||||
Subject: [PATCH 14/16] Revert "aplay: try to use 16-bit format to increase
|
||||
capture quality"
|
||||
|
||||
This reverts commit 0c5948e98a6a8535c89b7bcab13017d7732181c6.
|
||||
|
||||
Link: https://github.com/alsa-project/alsa-utils/issues/96
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
aplay/aplay.c | 43 +++++++++----------------------------------
|
||||
1 file changed, 9 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
||||
index 0b7884e..d89b7df 100644
|
||||
--- a/aplay/aplay.c
|
||||
+++ b/aplay/aplay.c
|
||||
@@ -32,7 +32,6 @@
|
||||
#include <malloc.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
-#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <getopt.h>
|
||||
#include <fcntl.h>
|
||||
@@ -95,7 +94,6 @@ enum {
|
||||
VUMETER_STEREO
|
||||
};
|
||||
|
||||
-static snd_pcm_format_t default_format = DEFAULT_FORMAT;
|
||||
static char *command;
|
||||
static snd_pcm_t *handle;
|
||||
static struct {
|
||||
@@ -470,24 +468,6 @@ 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;
|
||||
@@ -548,7 +528,6 @@ 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, "");
|
||||
@@ -583,7 +562,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;
|
||||
|
||||
@@ -633,7 +612,6 @@ 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;
|
||||
@@ -866,9 +844,6 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
- if (!user_set_fmt)
|
||||
- try_to_adjust_default_format_16bit();
|
||||
-
|
||||
chunk_size = 1024;
|
||||
hwparams = rhwparams;
|
||||
|
||||
@@ -1089,7 +1064,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;
|
||||
@@ -1099,7 +1074,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));
|
||||
@@ -1112,7 +1087,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));
|
||||
@@ -1123,7 +1098,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));
|
||||
@@ -1209,19 +1184,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;
|
||||
@@ -2390,7 +2365,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.30.2
|
||||
|
||||
|
||||
From fc7500c3c7a7d6bfb975a87e23b7544a84da3186 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Mon, 14 Jun 2021 12:22:08 +0200
|
||||
Subject: [PATCH 15/16] arecord: Inform users when 8-bit sampling is used on
|
||||
tty
|
||||
|
||||
When we reverted 0c5948e ("aplay: try to use 16-bit format to
|
||||
increase capture quality"), we should also handle the original
|
||||
problem somehow. This code shows a warning with a hint to
|
||||
the right parameter.
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-utils/issues/96
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
aplay/aplay.c | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
||||
index d89b7df..cc51dcb 100644
|
||||
--- a/aplay/aplay.c
|
||||
+++ b/aplay/aplay.c
|
||||
@@ -525,7 +525,7 @@ int main(int argc, char *argv[])
|
||||
};
|
||||
char *pcm_name = "default";
|
||||
int tmp, err, c;
|
||||
- int do_device_list = 0, do_pcm_list = 0;
|
||||
+ int do_device_list = 0, do_pcm_list = 0, force_sample_format = 0;
|
||||
snd_pcm_info_t *info;
|
||||
FILE *direction;
|
||||
|
||||
@@ -612,6 +612,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
break;
|
||||
case 'f':
|
||||
+ force_sample_format = 1;
|
||||
if (strcasecmp(optarg, "cd") == 0 || strcasecmp(optarg, "cdr") == 0) {
|
||||
if (strcasecmp(optarg, "cdr") == 0)
|
||||
rhwparams.format = SND_PCM_FORMAT_S16_BE;
|
||||
@@ -844,6 +845,14 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
+ if (!force_sample_format &&
|
||||
+ isatty(fileno(stdin)) &&
|
||||
+ stream == SND_PCM_STREAM_CAPTURE &&
|
||||
+ snd_pcm_format_width(rhwparams.format) <= 8)
|
||||
+ fprintf(stderr, "Warning: Some sources (like microphones) may produce inaudiable results\n"
|
||||
+ " with 8-bit sampling. Use '-f' argument to increase resolution\n"
|
||||
+ " e.g. '-f S16_LE'.\n");
|
||||
+
|
||||
chunk_size = 1024;
|
||||
hwparams = rhwparams;
|
||||
|
||||
--
|
||||
2.30.2
|
||||
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
Summary: Advanced Linux Sound Architecture (ALSA) utilities
|
||||
Name: alsa-utils
|
||||
Version: %{baseversion}%{?fixversion}
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
License: GPLv2+
|
||||
Group: Applications/Multimedia
|
||||
URL: http://www.alsa-project.org/
|
||||
@ -192,7 +192,7 @@ fi
|
||||
%systemd_postun_with_restart alsa-state.service
|
||||
|
||||
%changelog
|
||||
* Thu Jun 3 2021 Jaroslav Kysela <perex@perex.cz> - 1.2.5-2
|
||||
* Mon Jun 14 2021 Jaroslav Kysela <perex@perex.cz> - 1.2.5-3
|
||||
- Updated to 1.2.5
|
||||
|
||||
* Mon Jun 8 2020 Jaroslav Kysela <perex@perex.cz> - 1.2.4-2
|
||||
|
Loading…
Reference in New Issue
Block a user