Accepting request 812887 from home:tiwai:branches:multimedia:libs
- Update to alsa-lib 1.2.3: including previous fixes, see the detailed changes at: https://www.alsa-project.org/wiki/Detailed_changes_v1.2.2_v1.2.3 - Drop obsoleted patches: 0001-conf-change-the-order-of-PCM-devices-in-alsa.conf.patch 0002-conf-namehint-add-omit_noargs-to-the-hint-section.patch 0003-Change-PCM-device-number-of-Asus-Xonar-U5.patch 0004-configure-add-embed-for-python3-config-python-3.8.patch 0005-conf-USB-Audio-Add-C-Media-USB-Headphone-Set-to-the-.patch 0006-topology-add-back-asrc-to-widget_map-in-dapm.c.patch 0007-ucm-clarify-the-index-syntax-for-the-device-names.patch 0008-ucm-fix-uc_mgr_scan_master_configs.patch 0009-namehint-remember-the-direction-from-the-upper-level.patch 0010-conf-fix-namehint-for-pcm.front-and-pcm.iec958.patch 0011-pcm-add-chmap-option-to-route-plugin.patch 0012-usecase-allow-indexes-also-for-modifier-names.patch 0013-ucm-fix-the-device-remove-operation.patch 0014-ucm-fix-copy-n-paste-typo-RemoveDevice-list.patch 0015-pcm-dmix-fix-sw_params-handling-of-timestamp-types-i.patch 0016-conf-USB-Audio-Fix-S-PDIF-output-of-ASUS-Xonar-AE.patch 0017-pcm-rate-fix-the-remaining-size-calculation-in-snd_p.patch 0018-use-case.h-add-USB-as-allowed-device-name.patch 0019-topology-Use-bool-parser-to-parse-boolean-value.patch 0020-fix-infinite-draining-of-the-rate-plugin-in-SND_PCM_.patch 0021-test-pcm_min-add-snd_pcm_drain-call-and-indentation-.patch OBS-URL: https://build.opensuse.org/request/show/812887 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa?expand=0&rev=275
This commit is contained in:
parent
e3a7d78266
commit
8e5049bc65
@ -1,81 +0,0 @@
|
||||
From 27c7927842a691ef13724cd16fb26264680c6aa2 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Sat, 29 Feb 2020 10:30:37 +0100
|
||||
Subject: [PATCH 1/5] conf: change the order of PCM devices in alsa.conf
|
||||
|
||||
Appearently, some applications use the first device for probe or so.
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-lib/issues/27
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/conf/alsa.conf | 46 +++++++++++++++++++++++-----------------------
|
||||
1 file changed, 23 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/src/conf/alsa.conf b/src/conf/alsa.conf
|
||||
index 099805864788..a091b810f9ed 100644
|
||||
--- a/src/conf/alsa.conf
|
||||
+++ b/src/conf/alsa.conf
|
||||
@@ -119,29 +119,6 @@ defaults.timer.subdevice 0
|
||||
# PCM interface
|
||||
#
|
||||
|
||||
-# redirect to load-on-demand extended pcm definitions
|
||||
-pcm.cards cards.pcm
|
||||
-
|
||||
-pcm.default cards.pcm.default
|
||||
-pcm.sysdefault cards.pcm.default
|
||||
-pcm.front cards.pcm.front
|
||||
-pcm.rear cards.pcm.rear
|
||||
-pcm.center_lfe cards.pcm.center_lfe
|
||||
-pcm.side cards.pcm.side
|
||||
-pcm.surround21 cards.pcm.surround21
|
||||
-pcm.surround40 cards.pcm.surround40
|
||||
-pcm.surround41 cards.pcm.surround41
|
||||
-pcm.surround50 cards.pcm.surround50
|
||||
-pcm.surround51 cards.pcm.surround51
|
||||
-pcm.surround71 cards.pcm.surround71
|
||||
-pcm.iec958 cards.pcm.iec958
|
||||
-pcm.spdif iec958
|
||||
-pcm.hdmi cards.pcm.hdmi
|
||||
-pcm.dmix cards.pcm.dmix
|
||||
-pcm.dsnoop cards.pcm.dsnoop
|
||||
-pcm.modem cards.pcm.modem
|
||||
-pcm.phoneline cards.pcm.phoneline
|
||||
-
|
||||
pcm.hw {
|
||||
@args [ CARD DEV SUBDEV ]
|
||||
@args.CARD {
|
||||
@@ -323,6 +300,29 @@ pcm.null {
|
||||
}
|
||||
}
|
||||
|
||||
+# redirect to load-on-demand extended pcm definitions
|
||||
+pcm.cards cards.pcm
|
||||
+
|
||||
+pcm.default cards.pcm.default
|
||||
+pcm.sysdefault cards.pcm.default
|
||||
+pcm.front cards.pcm.front
|
||||
+pcm.rear cards.pcm.rear
|
||||
+pcm.center_lfe cards.pcm.center_lfe
|
||||
+pcm.side cards.pcm.side
|
||||
+pcm.surround21 cards.pcm.surround21
|
||||
+pcm.surround40 cards.pcm.surround40
|
||||
+pcm.surround41 cards.pcm.surround41
|
||||
+pcm.surround50 cards.pcm.surround50
|
||||
+pcm.surround51 cards.pcm.surround51
|
||||
+pcm.surround71 cards.pcm.surround71
|
||||
+pcm.iec958 cards.pcm.iec958
|
||||
+pcm.spdif iec958
|
||||
+pcm.hdmi cards.pcm.hdmi
|
||||
+pcm.dmix cards.pcm.dmix
|
||||
+pcm.dsnoop cards.pcm.dsnoop
|
||||
+pcm.modem cards.pcm.modem
|
||||
+pcm.phoneline cards.pcm.phoneline
|
||||
+
|
||||
#
|
||||
# Control interface
|
||||
#
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,109 +0,0 @@
|
||||
From 09e78da4cade7b8fecb8f36717b85c456f2e5487 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Sun, 1 Mar 2020 19:57:06 +0100
|
||||
Subject: [PATCH 2/5] conf: namehint - add omit_noargs to the hint section
|
||||
|
||||
Do not list simple surround devices in the namehint function by default.
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-lib/issues/27
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/conf/pcm/surround21.conf | 1 +
|
||||
src/conf/pcm/surround40.conf | 1 +
|
||||
src/conf/pcm/surround41.conf | 1 +
|
||||
src/conf/pcm/surround50.conf | 1 +
|
||||
src/conf/pcm/surround51.conf | 1 +
|
||||
src/conf/pcm/surround71.conf | 1 +
|
||||
src/control/namehint.c | 6 +++++-
|
||||
7 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/conf/pcm/surround21.conf b/src/conf/pcm/surround21.conf
|
||||
index 1cf1b7af8dc6..ad19507bba58 100644
|
||||
--- a/src/conf/pcm/surround21.conf
|
||||
+++ b/src/conf/pcm/surround21.conf
|
||||
@@ -57,5 +57,6 @@ pcm.!surround21 {
|
||||
hint {
|
||||
description "2.1 Surround output to Front and Subwoofer speakers"
|
||||
device_output $DEV
|
||||
+ omit_noargs true
|
||||
}
|
||||
}
|
||||
diff --git a/src/conf/pcm/surround40.conf b/src/conf/pcm/surround40.conf
|
||||
index 9788ad4884fd..7c615022f500 100644
|
||||
--- a/src/conf/pcm/surround40.conf
|
||||
+++ b/src/conf/pcm/surround40.conf
|
||||
@@ -55,5 +55,6 @@ pcm.!surround40 {
|
||||
hint {
|
||||
description "4.0 Surround output to Front and Rear speakers"
|
||||
device_output $DEV
|
||||
+ omit_noargs true
|
||||
}
|
||||
}
|
||||
diff --git a/src/conf/pcm/surround41.conf b/src/conf/pcm/surround41.conf
|
||||
index 7b4ef3beb43a..cb6c0445ae07 100644
|
||||
--- a/src/conf/pcm/surround41.conf
|
||||
+++ b/src/conf/pcm/surround41.conf
|
||||
@@ -61,5 +61,6 @@ pcm.!surround41 {
|
||||
hint {
|
||||
description "4.1 Surround output to Front, Rear and Subwoofer speakers"
|
||||
device_output $DEV
|
||||
+ omit_noargs true
|
||||
}
|
||||
}
|
||||
diff --git a/src/conf/pcm/surround50.conf b/src/conf/pcm/surround50.conf
|
||||
index 7d9a9e798fd8..70d54069f8a3 100644
|
||||
--- a/src/conf/pcm/surround50.conf
|
||||
+++ b/src/conf/pcm/surround50.conf
|
||||
@@ -61,5 +61,6 @@ pcm.!surround50 {
|
||||
hint {
|
||||
description "5.0 Surround output to Front, Center and Rear speakers"
|
||||
device_output $DEV
|
||||
+ omit_noargs true
|
||||
}
|
||||
}
|
||||
diff --git a/src/conf/pcm/surround51.conf b/src/conf/pcm/surround51.conf
|
||||
index e67f007ef305..d0236e42d332 100644
|
||||
--- a/src/conf/pcm/surround51.conf
|
||||
+++ b/src/conf/pcm/surround51.conf
|
||||
@@ -57,5 +57,6 @@ pcm.!surround51 {
|
||||
hint {
|
||||
description "5.1 Surround output to Front, Center, Rear and Subwoofer speakers"
|
||||
device_output $DEV
|
||||
+ omit_noargs true
|
||||
}
|
||||
}
|
||||
diff --git a/src/conf/pcm/surround71.conf b/src/conf/pcm/surround71.conf
|
||||
index a26c3f36c437..66792ddebbc0 100644
|
||||
--- a/src/conf/pcm/surround71.conf
|
||||
+++ b/src/conf/pcm/surround71.conf
|
||||
@@ -59,5 +59,6 @@ pcm.!surround71 {
|
||||
hint {
|
||||
description "7.1 Surround output to Front, Center, Side, Rear and Woofer speakers"
|
||||
device_output $DEV
|
||||
+ omit_noargs true
|
||||
}
|
||||
}
|
||||
diff --git a/src/control/namehint.c b/src/control/namehint.c
|
||||
index 60c48ae32877..169bd4215fc5 100644
|
||||
--- a/src/control/namehint.c
|
||||
+++ b/src/control/namehint.c
|
||||
@@ -287,10 +287,14 @@ static int try_config(snd_config_t *config,
|
||||
err = -EINVAL;
|
||||
goto __cleanup;
|
||||
}
|
||||
+ if (list->card < 0 &&
|
||||
+ snd_config_search(cfg, "omit_noargs", &n) >= 0 &&
|
||||
+ snd_config_get_bool(n) > 0)
|
||||
+ goto __skip_add;
|
||||
if (level == 1 &&
|
||||
snd_config_search(cfg, "show", &n) >= 0 &&
|
||||
snd_config_get_bool(n) <= 0)
|
||||
- goto __skip_add;
|
||||
+ goto __skip_add;
|
||||
if (buf1 == NULL &&
|
||||
snd_config_search(cfg, "description", &n) >= 0 &&
|
||||
snd_config_get_string(n, &str) >= 0) {
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,27 +0,0 @@
|
||||
From c7efaef195b92e30efb3049a1c03fa1b50310477 Mon Sep 17 00:00:00 2001
|
||||
From: be-marc <marcbecker@posteo.de>
|
||||
Date: Tue, 3 Mar 2020 11:01:09 +0100
|
||||
Subject: [PATCH 3/5] Change PCM device number of Asus Xonar U5
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/conf/cards/USB-Audio.conf | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf
|
||||
index 1c6779379c89..dd99c44d859b 100644
|
||||
--- a/src/conf/cards/USB-Audio.conf
|
||||
+++ b/src/conf/cards/USB-Audio.conf
|
||||
@@ -39,7 +39,8 @@ USB-Audio.pcm.iec958_device {
|
||||
# "NoiseBlaster 3000" 42
|
||||
"USB Sound Blaster HD" 1
|
||||
"Xonar U7" 1
|
||||
-
|
||||
+ "ASUS XONAR U5" 1
|
||||
+
|
||||
# The below don't have digital in/out, so prevent them from being opened.
|
||||
"Andrea PureAudio USB-SA Headset" 999
|
||||
"Blue Snowball" 999
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,31 +0,0 @@
|
||||
From 1654f38a29e635ce69a30c6c95ec1ca773ecee37 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Wed, 4 Mar 2020 11:27:12 +0100
|
||||
Subject: [PATCH 4/5] configure: add --embed for python3-config (python 3.8)
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-lib/issues/33
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
configure.ac | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 0f9fb01631f1..4b5ab6628bff 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -423,7 +423,10 @@ if test "$build_python" = "yes" -a "$build_mixer_pymodules" = "yes"; then
|
||||
pythonlibs0=
|
||||
pythoninc0=
|
||||
if test "$build_python2" != "yes"; then
|
||||
- pythonlibs0=$(python3-config --libs)
|
||||
+ pythonlibs0=$(python3-config --libs --embed 2> /dev/null)
|
||||
+ if test -z "$pythonlibs0"; then
|
||||
+ pythonlibs0=$(python3-config --libs)
|
||||
+ fi
|
||||
pythoninc0=$(python3-config --includes)
|
||||
fi
|
||||
if test -z "$pythonlibs0"; then
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,29 +0,0 @@
|
||||
From 9ed3c65e1569a0ebbec9af1d04d739db9921e775 Mon Sep 17 00:00:00 2001
|
||||
From: Tanu Kaskinen <tanuk@iki.fi>
|
||||
Date: Fri, 13 Mar 2020 09:39:17 +0200
|
||||
Subject: [PATCH 5/5] conf: USB-Audio: Add C-Media USB Headphone Set to the
|
||||
IEC958 blacklist
|
||||
|
||||
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/317
|
||||
|
||||
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/conf/cards/USB-Audio.conf | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf
|
||||
index dd99c44d859b..89811086db1d 100644
|
||||
--- a/src/conf/cards/USB-Audio.conf
|
||||
+++ b/src/conf/cards/USB-Audio.conf
|
||||
@@ -44,6 +44,7 @@ USB-Audio.pcm.iec958_device {
|
||||
# The below don't have digital in/out, so prevent them from being opened.
|
||||
"Andrea PureAudio USB-SA Headset" 999
|
||||
"Blue Snowball" 999
|
||||
+ "C-Media USB Headphone Set" 999
|
||||
"HP Digital Stereo Headset" 999
|
||||
"GN 9330" 999
|
||||
"Logitech Speaker Lapdesk N700" 999
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,28 +0,0 @@
|
||||
From caf77a93cef5bda729bc33e0100cc0e769767389 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 13 Mar 2020 17:05:14 +0100
|
||||
Subject: [PATCH 06/16] topology: add back asrc to widget_map in dapm.c
|
||||
|
||||
Fixes: aa1bac2d04bd ("topology: add snd_tplg_save()")
|
||||
BugLink: https://github.com/thesofproject/sof/issues/2543
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/topology/dapm.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/topology/dapm.c b/src/topology/dapm.c
|
||||
index cb85e66734f6..70645126d0bc 100644
|
||||
--- a/src/topology/dapm.c
|
||||
+++ b/src/topology/dapm.c
|
||||
@@ -43,6 +43,7 @@ static const struct map_elem widget_map[] = {
|
||||
{"effect", SND_SOC_TPLG_DAPM_EFFECT},
|
||||
{"siggen", SND_SOC_TPLG_DAPM_SIGGEN},
|
||||
{"src", SND_SOC_TPLG_DAPM_SRC},
|
||||
+ {"asrc", SND_SOC_TPLG_DAPM_ASRC},
|
||||
{"encoder", SND_SOC_TPLG_DAPM_ENCODER},
|
||||
{"decoder", SND_SOC_TPLG_DAPM_DECODER},
|
||||
};
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,29 +0,0 @@
|
||||
From 79102bf264f8651692fe9435a4d1bb06aa022d55 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Tue, 17 Mar 2020 10:21:10 +0100
|
||||
Subject: [PATCH 07/16] ucm: clarify the index syntax for the device names
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
include/use-case.h | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/use-case.h b/include/use-case.h
|
||||
index 134303afaa18..27cb3fe1613f 100644
|
||||
--- a/include/use-case.h
|
||||
+++ b/include/use-case.h
|
||||
@@ -117,7 +117,10 @@ extern "C" {
|
||||
*
|
||||
* If multiple devices with the same name exists, the number suffixes should
|
||||
* be added to these names like HDMI1,HDMI2,HDMI3 etc. No number gaps are
|
||||
- * allowed. The names with numbers must be continuous.
|
||||
+ * allowed. The names with numbers must be continuous. It is allowed to put
|
||||
+ * a whitespace between name and index (like 'Line 1') for the better
|
||||
+ * readability. The device names 'Line 1' and 'Line1' are equal for
|
||||
+ * thus purpose.
|
||||
*
|
||||
* If EnableSequence/DisableSequence controls independent paths in the hardware
|
||||
* it is also recommended to split playback and capture UCM devices and use
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,31 +0,0 @@
|
||||
From 6137d263f3805c72781ea74b813b0e3754f5fc34 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Tue, 17 Mar 2020 16:20:52 +0100
|
||||
Subject: [PATCH 08/16] ucm: fix uc_mgr_scan_master_configs()
|
||||
|
||||
Skip the lookup, if the top level filename does not exist.
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-ucm-conf/issues/16
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/ucm/parser.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/ucm/parser.c b/src/ucm/parser.c
|
||||
index 8d6eea31f8e7..0001e5953707 100644
|
||||
--- a/src/ucm/parser.c
|
||||
+++ b/src/ucm/parser.c
|
||||
@@ -1969,6 +1969,9 @@ int uc_mgr_scan_master_configs(const char **_list[])
|
||||
|
||||
configuration_filename2(filename, sizeof(filename), 2,
|
||||
d_name, d_name, ".conf");
|
||||
+ if (eaccess(filename, R_OK))
|
||||
+ continue;
|
||||
+
|
||||
err = uc_mgr_config_load(2, filename, &cfg);
|
||||
if (err < 0)
|
||||
goto __err;
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,31 +0,0 @@
|
||||
From d434638a683c01bd6decf8f41863044055237a50 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 27 Mar 2020 11:59:53 +0100
|
||||
Subject: [PATCH 09/16] namehint: remember the direction from the upper levels
|
||||
|
||||
The current code resets the direction info for each level.
|
||||
Simply remove this code.
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-lib/issues/39
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/control/namehint.c | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/src/control/namehint.c b/src/control/namehint.c
|
||||
index 169bd4215fc5..ecd470f33d07 100644
|
||||
--- a/src/control/namehint.c
|
||||
+++ b/src/control/namehint.c
|
||||
@@ -270,8 +270,6 @@ static int try_config(snd_config_t *config,
|
||||
if (snd_config_search(cfg1, "type", &cfg) >= 0 &&
|
||||
snd_config_get_string(cfg, &str) >= 0 &&
|
||||
strcmp(str, "hw") == 0) {
|
||||
- list->device_input = -1;
|
||||
- list->device_output = -1;
|
||||
if (snd_config_search(cfg1, "device", &cfg) >= 0) {
|
||||
if (snd_config_get_integer(cfg, &dev) < 0) {
|
||||
SNDERR("(%s) device must be an integer", buf);
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,43 +0,0 @@
|
||||
From bca39e99d0c2a270a71dad640983fb739dac8bdd Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 27 Mar 2020 18:14:02 +0100
|
||||
Subject: [PATCH 10/16] conf: fix namehint for pcm.front and pcm.iec958
|
||||
|
||||
As suggested in:
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-lib/issues/39
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/conf/pcm/front.conf | 3 ++-
|
||||
src/conf/pcm/iec958.conf | 2 +-
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/conf/pcm/front.conf b/src/conf/pcm/front.conf
|
||||
index 7aff0cbf007d..0edf6a6953b7 100644
|
||||
--- a/src/conf/pcm/front.conf
|
||||
+++ b/src/conf/pcm/front.conf
|
||||
@@ -53,6 +53,7 @@ pcm.!front {
|
||||
name defaults.namehint.basic
|
||||
}
|
||||
description "Front speakers"
|
||||
- device $DEV
|
||||
+ device_output $DEV
|
||||
+ omit_noargs true
|
||||
}
|
||||
}
|
||||
diff --git a/src/conf/pcm/iec958.conf b/src/conf/pcm/iec958.conf
|
||||
index ac139b5e4027..2b084d6fd1d7 100644
|
||||
--- a/src/conf/pcm/iec958.conf
|
||||
+++ b/src/conf/pcm/iec958.conf
|
||||
@@ -78,6 +78,6 @@ pcm.!iec958 {
|
||||
name defaults.namehint.basic
|
||||
}
|
||||
description "IEC958 (S/PDIF) Digital Audio Output"
|
||||
- device $DEV
|
||||
+ device_output $DEV
|
||||
}
|
||||
}
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,216 +0,0 @@
|
||||
From 3b46b03f099da2f39c205a25b3cc62ec688fe6b3 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Holmberg <jonashg@axis.com>
|
||||
Date: Tue, 31 Mar 2020 17:09:25 +0200
|
||||
Subject: [PATCH 11/16] pcm: add chmap option to route plugin
|
||||
|
||||
Add a config definition "chmap" to override the channel maps in the same
|
||||
way as in the hw and null plugins.
|
||||
|
||||
Signed-off-by: Jonas Holmberg <jonashg@axis.com>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/pcm/pcm_route.c | 57 +++++++++++++++++++++++++++++++++++++++++++----------
|
||||
1 file changed, 47 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/pcm/pcm_route.c b/src/pcm/pcm_route.c
|
||||
index bbcc6118b593..d3e5f3ff1f15 100644
|
||||
--- a/src/pcm/pcm_route.c
|
||||
+++ b/src/pcm/pcm_route.c
|
||||
@@ -104,6 +104,7 @@ typedef struct {
|
||||
int schannels;
|
||||
snd_pcm_route_params_t params;
|
||||
snd_pcm_chmap_t *chmap;
|
||||
+ snd_pcm_chmap_query_t **chmap_override;
|
||||
} snd_pcm_route_t;
|
||||
|
||||
#endif /* DOC_HIDDEN */
|
||||
@@ -441,6 +442,7 @@ static int snd_pcm_route_close(snd_pcm_t *pcm)
|
||||
free(params->dsts);
|
||||
}
|
||||
free(route->chmap);
|
||||
+ snd_pcm_free_chmaps(route->chmap_override);
|
||||
return snd_pcm_generic_close(pcm);
|
||||
}
|
||||
|
||||
@@ -634,6 +636,9 @@ static snd_pcm_chmap_t *snd_pcm_route_get_chmap(snd_pcm_t *pcm)
|
||||
snd_pcm_chmap_t *map, *slave_map;
|
||||
unsigned int src, dst, nsrcs;
|
||||
|
||||
+ if (route->chmap_override)
|
||||
+ return _snd_pcm_choose_fixed_chmap(pcm, route->chmap_override);
|
||||
+
|
||||
slave_map = snd_pcm_generic_get_chmap(pcm);
|
||||
if (!slave_map)
|
||||
return NULL;
|
||||
@@ -660,8 +665,14 @@ static snd_pcm_chmap_t *snd_pcm_route_get_chmap(snd_pcm_t *pcm)
|
||||
|
||||
static snd_pcm_chmap_query_t **snd_pcm_route_query_chmaps(snd_pcm_t *pcm)
|
||||
{
|
||||
+ snd_pcm_route_t *route = pcm->private_data;
|
||||
snd_pcm_chmap_query_t **maps;
|
||||
- snd_pcm_chmap_t *map = snd_pcm_route_get_chmap(pcm);
|
||||
+ snd_pcm_chmap_t *map;
|
||||
+
|
||||
+ if (route->chmap_override)
|
||||
+ return _snd_pcm_copy_chmap_query(route->chmap_override);
|
||||
+
|
||||
+ map = snd_pcm_route_get_chmap(pcm);
|
||||
if (!map)
|
||||
return NULL;
|
||||
maps = _snd_pcm_make_single_query_chmaps(map);
|
||||
@@ -818,10 +829,10 @@ err:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
-static int find_matching_chmap(snd_pcm_t *spcm, snd_pcm_chmap_t *tt_chmap,
|
||||
+static int find_matching_chmap(snd_pcm_chmap_query_t **chmaps,
|
||||
+ snd_pcm_chmap_t *tt_chmap,
|
||||
snd_pcm_chmap_t **found_chmap, int *schannels)
|
||||
{
|
||||
- snd_pcm_chmap_query_t** chmaps = snd_pcm_query_chmaps(spcm);
|
||||
int i;
|
||||
|
||||
*found_chmap = NULL;
|
||||
@@ -854,7 +865,6 @@ static int find_matching_chmap(snd_pcm_t *spcm, snd_pcm_chmap_t *tt_chmap,
|
||||
int size = sizeof(snd_pcm_chmap_t) + c->channels * sizeof(unsigned int);
|
||||
*found_chmap = malloc(size);
|
||||
if (!*found_chmap) {
|
||||
- snd_pcm_free_chmaps(chmaps);
|
||||
return -ENOMEM;
|
||||
}
|
||||
memcpy(*found_chmap, c, size);
|
||||
@@ -863,8 +873,6 @@ static int find_matching_chmap(snd_pcm_t *spcm, snd_pcm_chmap_t *tt_chmap,
|
||||
}
|
||||
}
|
||||
|
||||
- snd_pcm_free_chmaps(chmaps);
|
||||
-
|
||||
if (*found_chmap == NULL) {
|
||||
SNDERR("Found no matching channel map");
|
||||
return -EINVAL;
|
||||
@@ -1252,6 +1260,7 @@ pcm.name {
|
||||
SCHANNEL REAL # route value (0.0 - 1.0)
|
||||
}
|
||||
}
|
||||
+ [chmap MAP] # Override channel maps; MAP is a string array
|
||||
}
|
||||
\endcode
|
||||
|
||||
@@ -1292,6 +1301,7 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name,
|
||||
snd_pcm_route_ttable_entry_t *ttable = NULL;
|
||||
unsigned int csize, ssize;
|
||||
unsigned int cused, sused;
|
||||
+ snd_pcm_chmap_query_t **chmaps = NULL;
|
||||
snd_config_for_each(i, next, conf) {
|
||||
snd_config_t *n = snd_config_iterator_entry(i);
|
||||
const char *id;
|
||||
@@ -1306,31 +1316,45 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name,
|
||||
if (strcmp(id, "ttable") == 0) {
|
||||
if (snd_config_get_type(n) != SND_CONFIG_TYPE_COMPOUND) {
|
||||
SNDERR("Invalid type for %s", id);
|
||||
+ snd_pcm_free_chmaps(chmaps);
|
||||
return -EINVAL;
|
||||
}
|
||||
tt = n;
|
||||
continue;
|
||||
}
|
||||
+ if (strcmp(id, "chmap") == 0) {
|
||||
+ chmaps = _snd_pcm_parse_config_chmaps(n);
|
||||
+ if (!chmaps) {
|
||||
+ SNDERR("Invalid channel map for %s", id);
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+ continue;
|
||||
+ }
|
||||
SNDERR("Unknown field %s", id);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (!slave) {
|
||||
SNDERR("slave is not defined");
|
||||
+ snd_pcm_free_chmaps(chmaps);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (!tt) {
|
||||
SNDERR("ttable is not defined");
|
||||
+ snd_pcm_free_chmaps(chmaps);
|
||||
return -EINVAL;
|
||||
}
|
||||
err = snd_pcm_slave_conf(root, slave, &sconf, 2,
|
||||
SND_PCM_HW_PARAM_FORMAT, 0, &sformat,
|
||||
SND_PCM_HW_PARAM_CHANNELS, 0, &schannels);
|
||||
- if (err < 0)
|
||||
+ if (err < 0) {
|
||||
+ snd_pcm_free_chmaps(chmaps);
|
||||
return err;
|
||||
+ }
|
||||
if (sformat != SND_PCM_FORMAT_UNKNOWN &&
|
||||
snd_pcm_format_linear(sformat) != 1) {
|
||||
snd_config_delete(sconf);
|
||||
SNDERR("slave format is not linear");
|
||||
+ snd_pcm_free_chmaps(chmaps);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -1345,13 +1369,19 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name,
|
||||
if (err < 0) {
|
||||
free(tt_chmap);
|
||||
free(ttable);
|
||||
+ snd_pcm_free_chmaps(chmaps);
|
||||
return err;
|
||||
}
|
||||
|
||||
if (tt_chmap) {
|
||||
- err = find_matching_chmap(spcm, tt_chmap, &chmap, &schannels);
|
||||
+ if (!chmaps)
|
||||
+ chmaps = snd_pcm_query_chmaps(spcm);
|
||||
+ if (chmaps)
|
||||
+ err = find_matching_chmap(chmaps, tt_chmap, &chmap,
|
||||
+ &schannels);
|
||||
free(tt_chmap);
|
||||
- if (err < 0) {
|
||||
+ if (chmaps && err < 0) {
|
||||
+ snd_pcm_free_chmaps(chmaps);
|
||||
snd_pcm_close(spcm);
|
||||
return err;
|
||||
}
|
||||
@@ -1360,12 +1390,14 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name,
|
||||
err = _snd_pcm_route_determine_ttable(tt, &csize, &ssize, chmap);
|
||||
if (err < 0) {
|
||||
free(chmap);
|
||||
+ snd_pcm_free_chmaps(chmaps);
|
||||
snd_pcm_close(spcm);
|
||||
return err;
|
||||
}
|
||||
ttable = malloc(csize * ssize * sizeof(snd_pcm_route_ttable_entry_t));
|
||||
if (ttable == NULL) {
|
||||
free(chmap);
|
||||
+ snd_pcm_free_chmaps(chmaps);
|
||||
snd_pcm_close(spcm);
|
||||
return -ENOMEM;
|
||||
}
|
||||
@@ -1374,6 +1406,7 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name,
|
||||
if (err < 0) {
|
||||
free(chmap);
|
||||
free(ttable);
|
||||
+ snd_pcm_free_chmaps(chmaps);
|
||||
snd_pcm_close(spcm);
|
||||
return err;
|
||||
}
|
||||
@@ -1385,9 +1418,13 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name,
|
||||
free(ttable);
|
||||
if (err < 0) {
|
||||
free(chmap);
|
||||
+ snd_pcm_free_chmaps(chmaps);
|
||||
snd_pcm_close(spcm);
|
||||
} else {
|
||||
- ((snd_pcm_route_t*) (*pcmp)->private_data)->chmap = chmap;
|
||||
+ snd_pcm_route_t *route = (*pcmp)->private_data;
|
||||
+
|
||||
+ route->chmap = chmap;
|
||||
+ route->chmap_override = chmaps;
|
||||
}
|
||||
|
||||
return err;
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,40 +0,0 @@
|
||||
From 341326c21ededb8c768c43ec2c9c7a80e7a26d35 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Fri, 3 Apr 2020 18:00:43 +0200
|
||||
Subject: [PATCH 12/16] usecase: allow indexes also for modifier names
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
include/use-case.h | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/use-case.h b/include/use-case.h
|
||||
index 27cb3fe1613f..c2ba79a9fdb1 100644
|
||||
--- a/include/use-case.h
|
||||
+++ b/include/use-case.h
|
||||
@@ -120,7 +120,7 @@ extern "C" {
|
||||
* allowed. The names with numbers must be continuous. It is allowed to put
|
||||
* a whitespace between name and index (like 'Line 1') for the better
|
||||
* readability. The device names 'Line 1' and 'Line1' are equal for
|
||||
- * thus purpose.
|
||||
+ * this purpose.
|
||||
*
|
||||
* If EnableSequence/DisableSequence controls independent paths in the hardware
|
||||
* it is also recommended to split playback and capture UCM devices and use
|
||||
@@ -149,6 +149,13 @@ extern "C" {
|
||||
* The use case modifier allows runtime configuration changes to deal with
|
||||
* asynchronous events.
|
||||
*
|
||||
+ * If multiple modifiers with the same name exists, the number suffixes should
|
||||
+ * be added to these names like 'Echo Reference 1','Echo Reference 2' etc.
|
||||
+ * No number gaps are allowed. The names with numbers must be continuous.
|
||||
+ * It is allowed to put a whitespace between name and index for the better
|
||||
+ * readability. The modifier names 'Something 1' and 'Something1' are equal
|
||||
+ * for this purpose.
|
||||
+ *
|
||||
* e.g. to record a voice call :-
|
||||
* 1. Set verb to SND_USE_CASE_VERB_VOICECALL (for voice call)
|
||||
* 2. Set modifier SND_USE_CASE_MOD_CAPTURE_VOICE when capture required.
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,55 +0,0 @@
|
||||
From c9605484d165d2b707f78eef14a224b0b47ba322 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Mon, 6 Apr 2020 13:25:43 +0200
|
||||
Subject: [PATCH 13/16] ucm: fix the device remove operation
|
||||
|
||||
- allow to remove device only from conflicting lists
|
||||
- unify the error codes when the device is not found (ENODEV)
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/ucm/utils.c | 13 +++++++++----
|
||||
1 file changed, 9 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/ucm/utils.c b/src/ucm/utils.c
|
||||
index 50b2a1df4a6a..d78ba91c3844 100644
|
||||
--- a/src/ucm/utils.c
|
||||
+++ b/src/ucm/utils.c
|
||||
@@ -371,7 +371,7 @@ int uc_mgr_rename_in_dev_list(struct dev_list *dev_list, const char *src,
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
- return -ENOENT;
|
||||
+ return -ENODEV;
|
||||
}
|
||||
|
||||
int uc_mgr_remove_from_dev_list(struct dev_list *dev_list, const char *name)
|
||||
@@ -528,17 +528,22 @@ int uc_mgr_remove_device(struct use_case_verb *verb, const char *name)
|
||||
{
|
||||
struct use_case_device *device;
|
||||
struct list_head *pos, *npos;
|
||||
+ int err, found = 0;
|
||||
|
||||
list_for_each_safe(pos, npos, &verb->device_list) {
|
||||
device = list_entry(pos, struct use_case_device, list);
|
||||
if (strcmp(device->name, name) == 0) {
|
||||
uc_mgr_free_device(device);
|
||||
+ found++;
|
||||
continue;
|
||||
}
|
||||
- uc_mgr_remove_from_dev_list(&device->dev_list, name);
|
||||
- return 0;
|
||||
+ err = uc_mgr_remove_from_dev_list(&device->dev_list, name);
|
||||
+ if (err < 0 && err != -ENODEV)
|
||||
+ return err;
|
||||
+ if (err == 0)
|
||||
+ found++;
|
||||
}
|
||||
- return -ENOENT;
|
||||
+ return found == 0 ? -ENODEV : 0;
|
||||
}
|
||||
|
||||
void uc_mgr_free_verb(snd_use_case_mgr_t *uc_mgr)
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,26 +0,0 @@
|
||||
From fb48ad9e4f6b84fd4ade689bd79e3a3c37d3e034 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Mon, 6 Apr 2020 17:20:24 +0200
|
||||
Subject: [PATCH 14/16] ucm: fix copy-n-paste typo (RemoveDevice list)
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/ucm/parser.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/ucm/parser.c b/src/ucm/parser.c
|
||||
index 0001e5953707..aca5ea8c3cea 100644
|
||||
--- a/src/ucm/parser.c
|
||||
+++ b/src/ucm/parser.c
|
||||
@@ -1176,7 +1176,7 @@ static int verb_device_management(struct use_case_verb *verb)
|
||||
}
|
||||
|
||||
/* remove devices */
|
||||
- list_for_each(pos, &verb->rename_list) {
|
||||
+ list_for_each(pos, &verb->remove_list) {
|
||||
dev = list_entry(pos, struct ucm_dev_name, list);
|
||||
err = uc_mgr_remove_device(verb, dev->name2);
|
||||
if (err < 0) {
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,238 +0,0 @@
|
||||
From d12df1dc9c095bcb52d104e5a39043b56424e9d2 Mon Sep 17 00:00:00 2001
|
||||
From: "sylvain.bertrand@gmail.com" <sylvain.bertrand@gmail.com>
|
||||
Date: Wed, 15 Apr 2020 00:44:39 +0000
|
||||
Subject: [PATCH 15/16] pcm: dmix: fix sw_params handling of timestamp types in
|
||||
direct plugins
|
||||
|
||||
In pcms using direct plugins (dmix/dsnoop/dshare), the timestamp type could
|
||||
be different from the terminating hw plugin, then the kernel driver.
|
||||
|
||||
Be sure such pcms have plugins using consistently the same timestamp type.
|
||||
|
||||
signed-off-by: Sylvain Bertrand <sylvain.bertrand@legeek.net>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/conf/alsa.conf | 1 +
|
||||
src/conf/pcm/dmix.conf | 4 ++++
|
||||
src/conf/pcm/dsnoop.conf | 4 ++++
|
||||
src/pcm/pcm_direct.c | 36 +++++++++++++++++++++++++++++++++++-
|
||||
src/pcm/pcm_direct.h | 2 ++
|
||||
src/pcm/pcm_dmix.c | 4 ++++
|
||||
src/pcm/pcm_dshare.c | 4 ++++
|
||||
src/pcm/pcm_dsnoop.c | 4 ++++
|
||||
src/pcm/pcm_local.h | 2 ++
|
||||
9 files changed, 60 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/conf/alsa.conf b/src/conf/alsa.conf
|
||||
index a091b810f9ed..0e01c887dc28 100644
|
||||
--- a/src/conf/alsa.conf
|
||||
+++ b/src/conf/alsa.conf
|
||||
@@ -69,6 +69,7 @@ defaults.pcm.minperiodtime 5000 # in us
|
||||
defaults.pcm.ipc_key 5678293
|
||||
defaults.pcm.ipc_gid audio
|
||||
defaults.pcm.ipc_perm 0660
|
||||
+defaults.pcm.tstamp_type "default"
|
||||
defaults.pcm.dmix.max_periods 0
|
||||
defaults.pcm.dmix.channels 2
|
||||
defaults.pcm.dmix.rate 48000
|
||||
diff --git a/src/conf/pcm/dmix.conf b/src/conf/pcm/dmix.conf
|
||||
index 7fa5c8b2e20a..50e573da5d35 100644
|
||||
--- a/src/conf/pcm/dmix.conf
|
||||
+++ b/src/conf/pcm/dmix.conf
|
||||
@@ -56,6 +56,10 @@ pcm.!dmix {
|
||||
@func refer
|
||||
name defaults.pcm.ipc_perm
|
||||
}
|
||||
+ tstamp_type {
|
||||
+ @func refer
|
||||
+ name defaults.pcm.tstamp_type
|
||||
+ }
|
||||
slave {
|
||||
pcm {
|
||||
type hw
|
||||
diff --git a/src/conf/pcm/dsnoop.conf b/src/conf/pcm/dsnoop.conf
|
||||
index abbd44f7fd79..f4336e5f5e07 100644
|
||||
--- a/src/conf/pcm/dsnoop.conf
|
||||
+++ b/src/conf/pcm/dsnoop.conf
|
||||
@@ -49,6 +49,10 @@ pcm.!dsnoop {
|
||||
@func refer
|
||||
name defaults.pcm.ipc_perm
|
||||
}
|
||||
+ tstamp_type {
|
||||
+ @func refer
|
||||
+ name defaults.pcm.tstamp_type
|
||||
+ }
|
||||
slave {
|
||||
pcm {
|
||||
type hw
|
||||
diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c
|
||||
index 54d99005461b..aa60a47774ae 100644
|
||||
--- a/src/pcm/pcm_direct.c
|
||||
+++ b/src/pcm/pcm_direct.c
|
||||
@@ -991,8 +991,11 @@ int snd_pcm_direct_hw_free(snd_pcm_t *pcm ATTRIBUTE_UNUSED)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-int snd_pcm_direct_sw_params(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_sw_params_t * params ATTRIBUTE_UNUSED)
|
||||
+int snd_pcm_direct_sw_params(snd_pcm_t *pcm, snd_pcm_sw_params_t *params)
|
||||
{
|
||||
+ if (params->tstamp_type != pcm->tstamp_type)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
/* values are cached in the pcm structure */
|
||||
return 0;
|
||||
}
|
||||
@@ -1318,6 +1321,15 @@ int snd_pcm_direct_initialize_slave(snd_pcm_direct_t *dmix, snd_pcm_t *spcm, str
|
||||
return ret;
|
||||
}
|
||||
|
||||
+ if (dmix->tstamp_type != -1) {
|
||||
+ ret = snd_pcm_sw_params_set_tstamp_type(spcm, &sw_params,
|
||||
+ dmix->tstamp_type);
|
||||
+ if (ret < 0) {
|
||||
+ SNDERR("unable to set tstamp type");
|
||||
+ return ret;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (dmix->type != SND_PCM_TYPE_DMIX &&
|
||||
dmix->type != SND_PCM_TYPE_DSHARE)
|
||||
goto __skip_silencing;
|
||||
@@ -1878,6 +1890,7 @@ int snd_pcm_direct_parse_open_conf(snd_config_t *root, snd_config_t *conf,
|
||||
rec->var_periodsize = 0;
|
||||
rec->direct_memory_access = 1;
|
||||
rec->hw_ptr_alignment = SND_PCM_HW_PTR_ALIGNMENT_AUTO;
|
||||
+ rec->tstamp_type = -1;
|
||||
|
||||
/* read defaults */
|
||||
if (snd_config_search(root, "defaults.pcm.dmix_max_periods", &n) >= 0) {
|
||||
@@ -1941,6 +1954,27 @@ int snd_pcm_direct_parse_open_conf(snd_config_t *root, snd_config_t *conf,
|
||||
|
||||
continue;
|
||||
}
|
||||
+ if (strcmp(id, "tstamp_type") == 0) {
|
||||
+ const char *str;
|
||||
+ err = snd_config_get_string(n, &str);
|
||||
+ if (err < 0) {
|
||||
+ SNDERR("Invalid type for %s", id);
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+ if (strcmp(str, "default") == 0)
|
||||
+ rec->tstamp_type = -1;
|
||||
+ else if (strcmp(str, "gettimeofday") == 0)
|
||||
+ rec->tstamp_type = SND_PCM_TSTAMP_TYPE_GETTIMEOFDAY;
|
||||
+ else if (strcmp(str, "monotonic") == 0)
|
||||
+ rec->tstamp_type = SND_PCM_TSTAMP_TYPE_MONOTONIC;
|
||||
+ else if (strcmp(str, "monotonic_raw") == 0)
|
||||
+ rec->tstamp_type = SND_PCM_TSTAMP_TYPE_MONOTONIC_RAW;
|
||||
+ else {
|
||||
+ SNDERR("The field tstamp_type is invalid : %s", str);
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+ continue;
|
||||
+ }
|
||||
if (strcmp(id, "ipc_gid") == 0) {
|
||||
char *group;
|
||||
char *endp;
|
||||
diff --git a/src/pcm/pcm_direct.h b/src/pcm/pcm_direct.h
|
||||
index 221edbe16879..8a236970a3a1 100644
|
||||
--- a/src/pcm/pcm_direct.h
|
||||
+++ b/src/pcm/pcm_direct.h
|
||||
@@ -173,6 +173,7 @@ struct snd_pcm_direct {
|
||||
unsigned int recoveries; /* mirror of executed recoveries on slave */
|
||||
int direct_memory_access; /* use arch-optimized buffer RW */
|
||||
snd_pcm_direct_hw_ptr_alignment_t hw_ptr_alignment;
|
||||
+ int tstamp_type; /* cached from conf, can be -1(default) on top of real types */
|
||||
union {
|
||||
struct {
|
||||
int shmid_sum; /* IPC global sum ring buffer memory identification */
|
||||
@@ -357,6 +358,7 @@ struct snd_pcm_direct_open_conf {
|
||||
int var_periodsize;
|
||||
int direct_memory_access;
|
||||
snd_pcm_direct_hw_ptr_alignment_t hw_ptr_alignment;
|
||||
+ int tstamp_type;
|
||||
snd_config_t *slave;
|
||||
snd_config_t *bindings;
|
||||
};
|
||||
diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c
|
||||
index d533f40c5892..843fa3168756 100644
|
||||
--- a/src/pcm/pcm_dmix.c
|
||||
+++ b/src/pcm/pcm_dmix.c
|
||||
@@ -1038,6 +1038,7 @@ int snd_pcm_dmix_open(snd_pcm_t **pcmp, const char *name,
|
||||
dmix->ipc_key = opts->ipc_key;
|
||||
dmix->ipc_perm = opts->ipc_perm;
|
||||
dmix->ipc_gid = opts->ipc_gid;
|
||||
+ dmix->tstamp_type = opts->tstamp_type;
|
||||
dmix->semid = -1;
|
||||
dmix->shmid = -1;
|
||||
|
||||
@@ -1237,6 +1238,9 @@ pcm.name {
|
||||
# roundup
|
||||
# rounddown
|
||||
# auto (default)
|
||||
+ tstamp_type STR # timestamp type
|
||||
+ # STR can be one of the below strings :
|
||||
+ # default, gettimeofday, monotonic, monotonic_raw
|
||||
slave STR
|
||||
# or
|
||||
slave { # Slave definition
|
||||
diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c
|
||||
index 59448cfb5883..6a99452b80fb 100644
|
||||
--- a/src/pcm/pcm_dshare.c
|
||||
+++ b/src/pcm/pcm_dshare.c
|
||||
@@ -723,6 +723,7 @@ int snd_pcm_dshare_open(snd_pcm_t **pcmp, const char *name,
|
||||
dshare->ipc_key = opts->ipc_key;
|
||||
dshare->ipc_perm = opts->ipc_perm;
|
||||
dshare->ipc_gid = opts->ipc_gid;
|
||||
+ dshare->tstamp_type = opts->tstamp_type;
|
||||
dshare->semid = -1;
|
||||
dshare->shmid = -1;
|
||||
|
||||
@@ -929,6 +930,9 @@ pcm.name {
|
||||
# roundup
|
||||
# rounddown
|
||||
# auto (default)
|
||||
+ tstamp_type STR # timestamp type
|
||||
+ # STR can be one of the below strings :
|
||||
+ # default, gettimeofday, monotonic, monotonic_raw
|
||||
slave STR
|
||||
# or
|
||||
slave { # Slave definition
|
||||
diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c
|
||||
index 24f472c72c8e..c64df381e225 100644
|
||||
--- a/src/pcm/pcm_dsnoop.c
|
||||
+++ b/src/pcm/pcm_dsnoop.c
|
||||
@@ -591,6 +591,7 @@ int snd_pcm_dsnoop_open(snd_pcm_t **pcmp, const char *name,
|
||||
dsnoop->ipc_key = opts->ipc_key;
|
||||
dsnoop->ipc_perm = opts->ipc_perm;
|
||||
dsnoop->ipc_gid = opts->ipc_gid;
|
||||
+ dsnoop->tstamp_type = opts->tstamp_type;
|
||||
dsnoop->semid = -1;
|
||||
dsnoop->shmid = -1;
|
||||
|
||||
@@ -780,6 +781,9 @@ pcm.name {
|
||||
# roundup
|
||||
# rounddown
|
||||
# auto (default)
|
||||
+ tstamp_type STR # timestamp type
|
||||
+ # STR can be one of the below strings :
|
||||
+ # default, gettimeofday, monotonic, monotonic_raw
|
||||
slave STR
|
||||
# or
|
||||
slave { # Slave definition
|
||||
diff --git a/src/pcm/pcm_local.h b/src/pcm/pcm_local.h
|
||||
index 05ed935f1f16..89d4125b875d 100644
|
||||
--- a/src/pcm/pcm_local.h
|
||||
+++ b/src/pcm/pcm_local.h
|
||||
@@ -928,6 +928,8 @@ int INTERNAL(snd_pcm_hw_params_set_buffer_size_last)(snd_pcm_t *pcm, snd_pcm_hw_
|
||||
|
||||
int snd_pcm_sw_params_set_tstamp_mode(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_tstamp_t val);
|
||||
int INTERNAL(snd_pcm_sw_params_get_tstamp_mode)(const snd_pcm_sw_params_t *params, snd_pcm_tstamp_t *val);
|
||||
+int snd_pcm_sw_params_set_tstamp_type(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_tstamp_type_t val);
|
||||
+int snd_pcm_sw_params_get_tstamp_type(const snd_pcm_sw_params_t *params, snd_pcm_tstamp_type_t *val);
|
||||
int snd_pcm_sw_params_set_avail_min(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val);
|
||||
int INTERNAL(snd_pcm_sw_params_get_avail_min)(const snd_pcm_sw_params_t *params, snd_pcm_uframes_t *val);
|
||||
int snd_pcm_sw_params_set_start_threshold(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val);
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,37 +0,0 @@
|
||||
From c996c9f52ced83a6f7b837fdc742e9b23e53a8a2 Mon Sep 17 00:00:00 2001
|
||||
From: Ivan Mironov <mironov.ivan@gmail.com>
|
||||
Date: Fri, 27 Mar 2020 00:46:45 +0500
|
||||
Subject: [PATCH 16/16] conf: USB-Audio: Fix S/PDIF output of ASUS Xonar AE
|
||||
|
||||
ASUS Xonar AE is a PCI-Express card containing USB controller:
|
||||
|
||||
USB controller [0c03]: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller [1b21:1142]
|
||||
|
||||
and the actual USB sound card:
|
||||
|
||||
ID 0b05:180f ASUSTek Computer, Inc. XONAR SOUND CARD
|
||||
|
||||
As other Xonar USB sound cards, it uses second device for digital
|
||||
output.
|
||||
|
||||
Signed-off-by: Ivan Mironov <mironov.ivan@gmail.com>
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/conf/cards/USB-Audio.conf | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf
|
||||
index 89811086db1d..3f4c421b7e2c 100644
|
||||
--- a/src/conf/cards/USB-Audio.conf
|
||||
+++ b/src/conf/cards/USB-Audio.conf
|
||||
@@ -40,6 +40,7 @@ USB-Audio.pcm.iec958_device {
|
||||
"USB Sound Blaster HD" 1
|
||||
"Xonar U7" 1
|
||||
"ASUS XONAR U5" 1
|
||||
+ "XONAR SOUND CARD" 1
|
||||
|
||||
# The below don't have digital in/out, so prevent them from being opened.
|
||||
"Andrea PureAudio USB-SA Headset" 999
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,27 +0,0 @@
|
||||
From a43074ba17dd46878c7be447a50f9c4b5311929b Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Thu, 23 Apr 2020 13:43:32 +0200
|
||||
Subject: [PATCH 17/21] pcm: rate - fix the remaining size calculation in
|
||||
snd_pcm_rate_drain()
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/pcm/pcm_rate.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
|
||||
index fdcaa8de7382..21611f62c370 100644
|
||||
--- a/src/pcm/pcm_rate.c
|
||||
+++ b/src/pcm/pcm_rate.c
|
||||
@@ -1060,6 +1060,8 @@ static int snd_pcm_rate_drain(snd_pcm_t *pcm)
|
||||
snd_pcm_sw_params(rate->gen.slave, &sw_params);
|
||||
|
||||
size = rate->appl_ptr - rate->last_commit_ptr;
|
||||
+ if (size > pcm->boundary)
|
||||
+ size -= pcm->boundary;
|
||||
ofs = rate->last_commit_ptr % pcm->buffer_size;
|
||||
while (size > 0) {
|
||||
snd_pcm_uframes_t psize, spsize;
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,28 +0,0 @@
|
||||
From 4327660c7154344a0c6075d5a665a4e5b89fc78d Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Tue, 28 Apr 2020 12:58:41 +0200
|
||||
Subject: [PATCH 18/21] use-case.h: add USB as allowed device name
|
||||
|
||||
Some USB devices are really generic where the
|
||||
PCM stream can be routed to different paths.
|
||||
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
include/use-case.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/include/use-case.h b/include/use-case.h
|
||||
index c2ba79a9fdb1..21df1de472d6 100644
|
||||
--- a/include/use-case.h
|
||||
+++ b/include/use-case.h
|
||||
@@ -140,6 +140,7 @@ extern "C" {
|
||||
#define SND_USE_CASE_DEV_EARPIECE "Earpiece" /**< Earpiece Device */
|
||||
#define SND_USE_CASE_DEV_SPDIF "SPDIF" /**< SPDIF Device */
|
||||
#define SND_USE_CASE_DEV_HDMI "HDMI" /**< HDMI Device */
|
||||
+#define SND_USE_CASE_DEV_USB "USB" /**< USB Device (multifunctional) */
|
||||
/* add new devices to end of list */
|
||||
|
||||
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,35 +0,0 @@
|
||||
From 496e239e65ecdab94358281b3b1346634a1476ef Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?=
|
||||
<amadeuszx.slawinski@linux.intel.com>
|
||||
Date: Fri, 17 Apr 2020 12:47:47 -0400
|
||||
Subject: [PATCH 19/21] topology: Use bool parser to parse boolean value
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
It should be safe to change this as correct values with int would be 0
|
||||
or 1 and bool parser handles them correctly.
|
||||
|
||||
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/topology/dapm.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/topology/dapm.c b/src/topology/dapm.c
|
||||
index 70645126d0bc..cd1a87704681 100644
|
||||
--- a/src/topology/dapm.c
|
||||
+++ b/src/topology/dapm.c
|
||||
@@ -595,7 +595,8 @@ int tplg_parse_dapm_widget(snd_tplg_t *tplg,
|
||||
}
|
||||
|
||||
if (strcmp(id, "invert") == 0) {
|
||||
- if (tplg_get_integer(n, &ival, 0))
|
||||
+ ival = snd_config_get_bool(n);
|
||||
+ if (ival < 0)
|
||||
return -EINVAL;
|
||||
|
||||
widget->invert = ival;
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,64 +0,0 @@
|
||||
From 29041c522071172af2c6bf086b3a0c19510a6660 Mon Sep 17 00:00:00 2001
|
||||
From: "sylvain.bertrand@gmail.com" <sylvain.bertrand@gmail.com>
|
||||
Date: Tue, 28 Apr 2020 12:09:18 +0000
|
||||
Subject: [PATCH 20/21] fix infinite draining of the rate plugin in
|
||||
SND_PCM_NONBLOCK mode
|
||||
|
||||
The draining function of the rate plugin does not handle properly the
|
||||
SND_PCM_NONBLOCK case. It can write data to the slave plugin each time the
|
||||
function is called, but does not update its internal state in order to
|
||||
reach a stopping condition. Use a last_commit_ptr workaround to reach such
|
||||
condition.
|
||||
|
||||
Signed-off-by: Sylvain BERTRAND <sylvain.bertrand@legeek.net>
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/pcm/pcm_rate.c | 18 +++++++++++++++++-
|
||||
1 file changed, 17 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
|
||||
index 21611f62c370..4f99a95b325f 100644
|
||||
--- a/src/pcm/pcm_rate.c
|
||||
+++ b/src/pcm/pcm_rate.c
|
||||
@@ -1051,6 +1051,7 @@ static int snd_pcm_rate_drain(snd_pcm_t *pcm)
|
||||
/* commit the remaining fraction (if any) */
|
||||
snd_pcm_uframes_t size, ofs, saved_avail_min;
|
||||
snd_pcm_sw_params_t sw_params;
|
||||
+ int commit_err;
|
||||
|
||||
__snd_pcm_lock(pcm);
|
||||
/* temporarily set avail_min to one */
|
||||
@@ -1079,14 +1080,29 @@ static int snd_pcm_rate_drain(snd_pcm_t *pcm)
|
||||
if (! spsize)
|
||||
break;
|
||||
}
|
||||
- snd_pcm_rate_commit_area(pcm, rate, ofs,
|
||||
+ commit_err = snd_pcm_rate_commit_area(pcm, rate, ofs,
|
||||
psize, spsize);
|
||||
+ if (commit_err == 1) {
|
||||
+ rate->last_commit_ptr += psize;
|
||||
+ if (rate->last_commit_ptr >= pcm->boundary)
|
||||
+ rate->last_commit_ptr = 0;
|
||||
+ } else if (commit_err == 0) {
|
||||
+ if (pcm->mode & SND_PCM_NONBLOCK != 0) {
|
||||
+ commit_err = -EAGAIN;
|
||||
+ break;
|
||||
+ }
|
||||
+ continue;
|
||||
+ } else
|
||||
+ break;
|
||||
+
|
||||
ofs = (ofs + psize) % pcm->buffer_size;
|
||||
size -= psize;
|
||||
}
|
||||
sw_params.avail_min = saved_avail_min;
|
||||
snd_pcm_sw_params(rate->gen.slave, &sw_params);
|
||||
__snd_pcm_unlock(pcm);
|
||||
+ if (commit_err < 0)
|
||||
+ return commit_err;
|
||||
}
|
||||
return snd_pcm_drain(rate->gen.slave);
|
||||
}
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,93 +0,0 @@
|
||||
From 21e2fc3857b842e8b47f77da785248edbaa69f5f Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Sun, 3 May 2020 20:07:29 +0200
|
||||
Subject: [PATCH 21/21] test: pcm_min - add snd_pcm_drain() call and
|
||||
indentation fixes
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-lib/issues/46
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
test/pcm_min.c | 50 ++++++++++++++++++++++++++------------------------
|
||||
1 file changed, 26 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/test/pcm_min.c b/test/pcm_min.c
|
||||
index 7462a45fef33..4c120b4c2b27 100644
|
||||
--- a/test/pcm_min.c
|
||||
+++ b/test/pcm_min.c
|
||||
@@ -5,47 +5,49 @@
|
||||
#include "../include/asoundlib.h"
|
||||
|
||||
static char *device = "default"; /* playback device */
|
||||
-
|
||||
-snd_output_t *output = NULL;
|
||||
unsigned char buffer[16*1024]; /* some random data */
|
||||
|
||||
int main(void)
|
||||
{
|
||||
- int err;
|
||||
- unsigned int i;
|
||||
- snd_pcm_t *handle;
|
||||
- snd_pcm_sframes_t frames;
|
||||
+ int err;
|
||||
+ unsigned int i;
|
||||
+ snd_pcm_t *handle;
|
||||
+ snd_pcm_sframes_t frames;
|
||||
|
||||
- for (i = 0; i < sizeof(buffer); i++)
|
||||
- buffer[i] = random() & 0xff;
|
||||
+ for (i = 0; i < sizeof(buffer); i++)
|
||||
+ buffer[i] = random() & 0xff;
|
||||
|
||||
if ((err = snd_pcm_open(&handle, device, SND_PCM_STREAM_PLAYBACK, 0)) < 0) {
|
||||
printf("Playback open error: %s\n", snd_strerror(err));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if ((err = snd_pcm_set_params(handle,
|
||||
- SND_PCM_FORMAT_U8,
|
||||
- SND_PCM_ACCESS_RW_INTERLEAVED,
|
||||
- 1,
|
||||
- 48000,
|
||||
- 1,
|
||||
- 500000)) < 0) { /* 0.5sec */
|
||||
+ SND_PCM_FORMAT_U8,
|
||||
+ SND_PCM_ACCESS_RW_INTERLEAVED,
|
||||
+ 1,
|
||||
+ 48000,
|
||||
+ 1,
|
||||
+ 500000)) < 0) { /* 0.5sec */
|
||||
printf("Playback open error: %s\n", snd_strerror(err));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
- frames = snd_pcm_writei(handle, buffer, sizeof(buffer));
|
||||
- if (frames < 0)
|
||||
- frames = snd_pcm_recover(handle, frames, 0);
|
||||
- if (frames < 0) {
|
||||
- printf("snd_pcm_writei failed: %s\n", snd_strerror(frames));
|
||||
- break;
|
||||
- }
|
||||
- if (frames > 0 && frames < (long)sizeof(buffer))
|
||||
- printf("Short write (expected %li, wrote %li)\n", (long)sizeof(buffer), frames);
|
||||
- }
|
||||
+ frames = snd_pcm_writei(handle, buffer, sizeof(buffer));
|
||||
+ if (frames < 0)
|
||||
+ frames = snd_pcm_recover(handle, frames, 0);
|
||||
+ if (frames < 0) {
|
||||
+ printf("snd_pcm_writei failed: %s\n", snd_strerror(frames));
|
||||
+ break;
|
||||
+ }
|
||||
+ if (frames > 0 && frames < (long)sizeof(buffer))
|
||||
+ printf("Short write (expected %li, wrote %li)\n", (long)sizeof(buffer), frames);
|
||||
+ }
|
||||
|
||||
+ /* pass the remaining samples, otherwise they're dropped in close */
|
||||
+ err = snd_pcm_drain(handle);
|
||||
+ if (err < 0)
|
||||
+ printf("snd_pcm_drain failed: %s\n", snd_strerror(err));
|
||||
snd_pcm_close(handle);
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
2.16.4
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d8e853d8805574777bbe40937812ad1419c9ea7210e176f0def3e6ed255ab3ec
|
||||
size 1030747
|
3
alsa-lib-1.2.3.tar.bz2
Normal file
3
alsa-lib-1.2.3.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:02f00922fc511eaf37b037197afa930d5ff0912c1a86f333393f91f3426f678e
|
||||
size 1037485
|
29
alsa.changes
29
alsa.changes
@ -1,3 +1,32 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 9 11:15:28 CEST 2020 - tiwai@suse.de
|
||||
|
||||
- Update to alsa-lib 1.2.3:
|
||||
including previous fixes, see the detailed changes at:
|
||||
https://www.alsa-project.org/wiki/Detailed_changes_v1.2.2_v1.2.3
|
||||
- Drop obsoleted patches:
|
||||
0001-conf-change-the-order-of-PCM-devices-in-alsa.conf.patch
|
||||
0002-conf-namehint-add-omit_noargs-to-the-hint-section.patch
|
||||
0003-Change-PCM-device-number-of-Asus-Xonar-U5.patch
|
||||
0004-configure-add-embed-for-python3-config-python-3.8.patch
|
||||
0005-conf-USB-Audio-Add-C-Media-USB-Headphone-Set-to-the-.patch
|
||||
0006-topology-add-back-asrc-to-widget_map-in-dapm.c.patch
|
||||
0007-ucm-clarify-the-index-syntax-for-the-device-names.patch
|
||||
0008-ucm-fix-uc_mgr_scan_master_configs.patch
|
||||
0009-namehint-remember-the-direction-from-the-upper-level.patch
|
||||
0010-conf-fix-namehint-for-pcm.front-and-pcm.iec958.patch
|
||||
0011-pcm-add-chmap-option-to-route-plugin.patch
|
||||
0012-usecase-allow-indexes-also-for-modifier-names.patch
|
||||
0013-ucm-fix-the-device-remove-operation.patch
|
||||
0014-ucm-fix-copy-n-paste-typo-RemoveDevice-list.patch
|
||||
0015-pcm-dmix-fix-sw_params-handling-of-timestamp-types-i.patch
|
||||
0016-conf-USB-Audio-Fix-S-PDIF-output-of-ASUS-Xonar-AE.patch
|
||||
0017-pcm-rate-fix-the-remaining-size-calculation-in-snd_p.patch
|
||||
0018-use-case.h-add-USB-as-allowed-device-name.patch
|
||||
0019-topology-Use-bool-parser-to-parse-boolean-value.patch
|
||||
0020-fix-infinite-draining-of-the-rate-plugin-in-SND_PCM_.patch
|
||||
0021-test-pcm_min-add-snd_pcm_drain-call-and-indentation-.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 6 16:01:32 CEST 2020 - tiwai@suse.de
|
||||
|
||||
|
48
alsa.spec
48
alsa.spec
@ -26,7 +26,7 @@
|
||||
%endif
|
||||
|
||||
Name: alsa
|
||||
Version: 1.2.2
|
||||
Version: 1.2.3
|
||||
Release: 0
|
||||
Summary: Advanced Linux Sound Architecture
|
||||
License: LGPL-2.1-or-later
|
||||
@ -47,28 +47,6 @@ Source30: all_notes_off
|
||||
Source31: all_notes_off.bin
|
||||
Source32: all_notes_off.mid
|
||||
Source34: alsa-init.sh
|
||||
# upstream fixes
|
||||
Patch1: 0001-conf-change-the-order-of-PCM-devices-in-alsa.conf.patch
|
||||
Patch2: 0002-conf-namehint-add-omit_noargs-to-the-hint-section.patch
|
||||
Patch3: 0003-Change-PCM-device-number-of-Asus-Xonar-U5.patch
|
||||
Patch4: 0004-configure-add-embed-for-python3-config-python-3.8.patch
|
||||
Patch5: 0005-conf-USB-Audio-Add-C-Media-USB-Headphone-Set-to-the-.patch
|
||||
Patch6: 0006-topology-add-back-asrc-to-widget_map-in-dapm.c.patch
|
||||
Patch7: 0007-ucm-clarify-the-index-syntax-for-the-device-names.patch
|
||||
Patch8: 0008-ucm-fix-uc_mgr_scan_master_configs.patch
|
||||
Patch9: 0009-namehint-remember-the-direction-from-the-upper-level.patch
|
||||
Patch10: 0010-conf-fix-namehint-for-pcm.front-and-pcm.iec958.patch
|
||||
Patch11: 0011-pcm-add-chmap-option-to-route-plugin.patch
|
||||
Patch12: 0012-usecase-allow-indexes-also-for-modifier-names.patch
|
||||
Patch13: 0013-ucm-fix-the-device-remove-operation.patch
|
||||
Patch14: 0014-ucm-fix-copy-n-paste-typo-RemoveDevice-list.patch
|
||||
Patch15: 0015-pcm-dmix-fix-sw_params-handling-of-timestamp-types-i.patch
|
||||
Patch16: 0016-conf-USB-Audio-Fix-S-PDIF-output-of-ASUS-Xonar-AE.patch
|
||||
Patch17: 0017-pcm-rate-fix-the-remaining-size-calculation-in-snd_p.patch
|
||||
Patch18: 0018-use-case.h-add-USB-as-allowed-device-name.patch
|
||||
Patch19: 0019-topology-Use-bool-parser-to-parse-boolean-value.patch
|
||||
Patch20: 0020-fix-infinite-draining-of-the-rate-plugin-in-SND_PCM_.patch
|
||||
Patch21: 0021-test-pcm_min-add-snd_pcm_drain-call-and-indentation-.patch
|
||||
# rest suse fixes
|
||||
Patch101: alsa-lib-ignore-non-accessible-ALSA_CONFIG_PATH.patch
|
||||
BuildRequires: doxygen
|
||||
@ -153,30 +131,6 @@ This package contains the library for ALSA topology support.
|
||||
|
||||
%prep
|
||||
%setup -q -n alsa-lib-%{version}
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
# causing a regression for capture streams on some apps (boo#1171044)
|
||||
%if 0
|
||||
%patch10 -p1
|
||||
%endif
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch101 -p1
|
||||
|
||||
%build
|
||||
|
Loading…
Reference in New Issue
Block a user