Sync from SUSE:SLFO:Main alsa revision 0239005f33e25a4ab3ccc7eaee3588aa
This commit is contained in:
parent
0b38bd2cda
commit
871ab724f0
@ -1,40 +0,0 @@
|
||||
From fcce13a6726c52882bd8b7131c61c4eba308792c Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Mon, 4 Sep 2023 09:38:26 +0200
|
||||
Subject: [PATCH] control.h: Fix ump header file detection
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Apparently, the control.h is used from apps separately (outside
|
||||
asoundlib.h). Avoid errors like:
|
||||
|
||||
/usr/include/alsa/control.h:417:47: error: ‘snd_ump_endpoint_info_t’ has not been declared
|
||||
417 | int snd_ctl_ump_endpoint_info(snd_ctl_t *ctl, snd_ump_endpoint_info_t *info);
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~
|
||||
/usr/include/alsa/control.h:418:44: error: ‘snd_ump_block_info_t’ has not been declared
|
||||
418 | int snd_ctl_ump_block_info(snd_ctl_t *ctl, snd_ump_block_info_t *info);
|
||||
| ^~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-lib/issues/348
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
include/control.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/include/control.h b/include/control.h
|
||||
index ab482ba448c0..e7541d56d636 100644
|
||||
--- a/include/control.h
|
||||
+++ b/include/control.h
|
||||
@@ -413,6 +413,8 @@ int snd_ctl_pcm_prefer_subdevice(snd_ctl_t *ctl, int subdev);
|
||||
int snd_ctl_rawmidi_next_device(snd_ctl_t *ctl, int * device);
|
||||
int snd_ctl_rawmidi_info(snd_ctl_t *ctl, snd_rawmidi_info_t * info);
|
||||
int snd_ctl_rawmidi_prefer_subdevice(snd_ctl_t *ctl, int subdev);
|
||||
+#endif
|
||||
+#ifdef __ALSA_UMP_H
|
||||
int snd_ctl_ump_next_device(snd_ctl_t *ctl, int *device);
|
||||
int snd_ctl_ump_endpoint_info(snd_ctl_t *ctl, snd_ump_endpoint_info_t *info);
|
||||
int snd_ctl_ump_block_info(snd_ctl_t *ctl, snd_ump_block_info_t *info);
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,49 +0,0 @@
|
||||
From 10bd599970acc71c92f85eb08943eb8d3d702a9c Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Wed, 6 Sep 2023 15:16:44 +0200
|
||||
Subject: [PATCH] global.h: move __STRING() macro outside !PIC ifdef block
|
||||
|
||||
It solves the musl libc compilation issue.
|
||||
|
||||
control.c: In function 'snd_ctl_open_conf':
|
||||
../../include/global.h:98:36: warning: implicit declaration of function '__STRING' [-Wimplicit-function-declaratio]
|
||||
98 | #define SND_DLSYM_VERSION(version) __STRING(version)
|
||||
| ^~~~~~~~
|
||||
|
||||
Fixes: https://github.com/alsa-project/alsa-lib/issues/350
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
include/global.h | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/include/global.h b/include/global.h
|
||||
index dfe9bc2b54bf..3ecaeee898c5 100644
|
||||
--- a/include/global.h
|
||||
+++ b/include/global.h
|
||||
@@ -51,6 +51,11 @@ const char *snd_asoundlib_version(void);
|
||||
#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
|
||||
#endif
|
||||
|
||||
+#ifndef __STRING
|
||||
+/** \brief Return 'x' argument as string */
|
||||
+#define __STRING(x) #x
|
||||
+#endif
|
||||
+
|
||||
#ifdef PIC /* dynamic build */
|
||||
|
||||
/** \hideinitializer \brief Helper macro for #SND_DLSYM_BUILD_VERSION. */
|
||||
@@ -71,11 +76,6 @@ struct snd_dlsym_link {
|
||||
|
||||
extern struct snd_dlsym_link *snd_dlsym_start;
|
||||
|
||||
-#ifndef __STRING
|
||||
-/** \brief Return 'x' argument as string */
|
||||
-#define __STRING(x) #x
|
||||
-#endif
|
||||
-
|
||||
/** \hideinitializer \brief Helper macro for #SND_DLSYM_BUILD_VERSION. */
|
||||
#define __SND_DLSYM_VERSION(prefix, name, version) _ ## prefix ## name ## version
|
||||
/**
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,113 +0,0 @@
|
||||
From 0e3dfb9f705ca78be34cd70fd59d67c431e29cc7 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Sat, 9 Sep 2023 17:42:03 +0200
|
||||
Subject: [PATCH] pcm: Fix segfault with 32bit libs
|
||||
|
||||
The recent rearrangement of header inclusion order caused a regression
|
||||
showing segfaults on 32bit Arm. The primary reason is the
|
||||
inconsistent compile condition depending on the inclusion of config.h;
|
||||
while most of other code include pcm_local.h (that implicitly includes
|
||||
config.h) at first, pcm_direct.c doesn't do it, hence the access with
|
||||
direct plugins crashes.
|
||||
|
||||
For fixing it, we need to include config.h at the beginning. But,
|
||||
it's better to include pcm_local.h for all relevant code for
|
||||
consistency. The patch does it, and also it adds the guard in
|
||||
pcm_local.h for double inclusions.
|
||||
|
||||
Fixes: ad3a8b8b314e ("reshuffle included files to include config.h as first")
|
||||
Link: https://github.com/alsa-project/alsa-lib/issues/352
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/pcm/pcm_direct.c | 1 +
|
||||
src/pcm/pcm_dmix.c | 2 +-
|
||||
src/pcm/pcm_dshare.c | 1 +
|
||||
src/pcm/pcm_dsnoop.c | 1 +
|
||||
src/pcm/pcm_local.h | 5 +++++
|
||||
src/pcm/pcm_shm.c | 1 +
|
||||
6 files changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c
|
||||
index 040fc1605388..e53e59238119 100644
|
||||
--- a/src/pcm/pcm_direct.c
|
||||
+++ b/src/pcm/pcm_direct.c
|
||||
@@ -19,6 +19,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include "pcm_local.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c
|
||||
index 7cd3c50841ae..55cae3e79a06 100644
|
||||
--- a/src/pcm/pcm_dmix.c
|
||||
+++ b/src/pcm/pcm_dmix.c
|
||||
@@ -26,7 +26,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
-#include "config.h"
|
||||
+#include "pcm_local.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c
|
||||
index 454b39a91429..c03290985457 100644
|
||||
--- a/src/pcm/pcm_dshare.c
|
||||
+++ b/src/pcm/pcm_dshare.c
|
||||
@@ -26,6 +26,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include "pcm_local.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c
|
||||
index d3ce300ce3b8..bf67c68a0dfa 100644
|
||||
--- a/src/pcm/pcm_dsnoop.c
|
||||
+++ b/src/pcm/pcm_dsnoop.c
|
||||
@@ -26,6 +26,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include "pcm_local.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
diff --git a/src/pcm/pcm_local.h b/src/pcm/pcm_local.h
|
||||
index 6a0e71e711ea..152c92c300e1 100644
|
||||
--- a/src/pcm/pcm_local.h
|
||||
+++ b/src/pcm/pcm_local.h
|
||||
@@ -20,6 +20,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#ifndef __PCM_LOCAL_H
|
||||
+#define __PCM_LOCAL_H
|
||||
+
|
||||
#include "config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
@@ -1223,3 +1226,5 @@ static inline void snd_pcm_unlock(snd_pcm_t *pcm)
|
||||
#define snd_pcm_lock(pcm) do {} while (0)
|
||||
#define snd_pcm_unlock(pcm) do {} while (0)
|
||||
#endif /* THREAD_SAFE_API */
|
||||
+
|
||||
+#endif /* __PCM_LOCAL_H */
|
||||
diff --git a/src/pcm/pcm_shm.c b/src/pcm/pcm_shm.c
|
||||
index f0bfd934d335..d9596547741c 100644
|
||||
--- a/src/pcm/pcm_shm.c
|
||||
+++ b/src/pcm/pcm_shm.c
|
||||
@@ -26,6 +26,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include "pcm_local.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,210 +0,0 @@
|
||||
From 81a7a93636d9472fcb0c2ff32d9bfdf6ed10763d Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Kysela <perex@perex.cz>
|
||||
Date: Wed, 13 Sep 2023 12:27:21 +0200
|
||||
Subject: [PATCH] reshuffle included files to include config.h as first - v2
|
||||
|
||||
config.h may contain defines like _FILE_OFFSET_BITS which influence
|
||||
the system wide include files (off_t types, open -> open64 function
|
||||
usage etc.).
|
||||
|
||||
Fixes: ad3a8b8b ("reshuffle included files to include config.h as first")
|
||||
Related: https://github.com/alsa-project/alsa-lib/pull/333
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/control/setup.c | 2 +-
|
||||
src/rawmidi/rawmidi.c | 2 +-
|
||||
src/rawmidi/rawmidi_local.h | 2 +-
|
||||
src/rawmidi/rawmidi_virt.c | 4 +---
|
||||
src/rawmidi/ump.c | 4 ----
|
||||
src/seq/seq.c | 2 +-
|
||||
src/seq/seq_hw.c | 2 +-
|
||||
src/seq/seq_local.h | 2 +-
|
||||
src/seq/seq_midi_event.c | 2 +-
|
||||
src/seq/seqmid.c | 4 +---
|
||||
src/userfile.c | 2 +-
|
||||
11 files changed, 10 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/src/control/setup.c b/src/control/setup.c
|
||||
index 88635e42e446..fb09611764cf 100644
|
||||
--- a/src/control/setup.c
|
||||
+++ b/src/control/setup.c
|
||||
@@ -29,13 +29,13 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include "local.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
-#include "local.h"
|
||||
|
||||
#ifndef DOC_HIDDEN
|
||||
typedef struct {
|
||||
diff --git a/src/rawmidi/rawmidi.c b/src/rawmidi/rawmidi.c
|
||||
index 316f524b85ad..c4b45fa227f1 100644
|
||||
--- a/src/rawmidi/rawmidi.c
|
||||
+++ b/src/rawmidi/rawmidi.c
|
||||
@@ -144,12 +144,12 @@ This example shows open and read/write rawmidi operations.
|
||||
* Shows open and read/write rawmidi operations.
|
||||
*/
|
||||
|
||||
+#include "rawmidi_local.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
-#include "rawmidi_local.h"
|
||||
|
||||
/**
|
||||
* \brief setup the default parameters
|
||||
diff --git a/src/rawmidi/rawmidi_local.h b/src/rawmidi/rawmidi_local.h
|
||||
index 19dbf72584fa..f0bb06a7d824 100644
|
||||
--- a/src/rawmidi/rawmidi_local.h
|
||||
+++ b/src/rawmidi/rawmidi_local.h
|
||||
@@ -19,10 +19,10 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include "local.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
-#include "local.h"
|
||||
|
||||
typedef struct {
|
||||
int (*close)(snd_rawmidi_t *rawmidi);
|
||||
diff --git a/src/rawmidi/rawmidi_virt.c b/src/rawmidi/rawmidi_virt.c
|
||||
index 884b8ff8deee..04c485d3eabf 100644
|
||||
--- a/src/rawmidi/rawmidi_virt.c
|
||||
+++ b/src/rawmidi/rawmidi_virt.c
|
||||
@@ -19,13 +19,11 @@
|
||||
*
|
||||
*/
|
||||
|
||||
-#include <stdio.h>
|
||||
-#include <stdlib.h>
|
||||
+#include "rawmidi_local.h"
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
-#include "rawmidi_local.h"
|
||||
#include "seq.h"
|
||||
#include "seq_midi_event.h"
|
||||
|
||||
diff --git a/src/rawmidi/ump.c b/src/rawmidi/ump.c
|
||||
index 25fbaff23c9d..39c1c4a91928 100644
|
||||
--- a/src/rawmidi/ump.c
|
||||
+++ b/src/rawmidi/ump.c
|
||||
@@ -4,10 +4,6 @@
|
||||
* \brief Universal MIDI Protocol (UMP) Interface
|
||||
*/
|
||||
|
||||
-#include <stdio.h>
|
||||
-#include <stdlib.h>
|
||||
-#include <limits.h>
|
||||
-#include "local.h"
|
||||
#include "rawmidi_local.h"
|
||||
#include "ump_local.h"
|
||||
|
||||
diff --git a/src/seq/seq.c b/src/seq/seq.c
|
||||
index 899dfe9f96ba..fd8ca30e2472 100644
|
||||
--- a/src/seq/seq.c
|
||||
+++ b/src/seq/seq.c
|
||||
@@ -777,8 +777,8 @@ void event_filter(snd_seq_t *seq, snd_seq_event_t *ev)
|
||||
|
||||
*/
|
||||
|
||||
-#include <poll.h>
|
||||
#include "seq_local.h"
|
||||
+#include <poll.h>
|
||||
|
||||
/****************************************************************************
|
||||
* *
|
||||
diff --git a/src/seq/seq_hw.c b/src/seq/seq_hw.c
|
||||
index a51ebfb68ebd..b74948c81c9e 100644
|
||||
--- a/src/seq/seq_hw.c
|
||||
+++ b/src/seq/seq_hw.c
|
||||
@@ -20,9 +20,9 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include "seq_local.h"
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
-#include "seq_local.h"
|
||||
|
||||
#ifndef PIC
|
||||
/* entry for static linking */
|
||||
diff --git a/src/seq/seq_local.h b/src/seq/seq_local.h
|
||||
index 9b4a65459d3d..468248062638 100644
|
||||
--- a/src/seq/seq_local.h
|
||||
+++ b/src/seq/seq_local.h
|
||||
@@ -23,10 +23,10 @@
|
||||
#ifndef __SEQ_LOCAL_H
|
||||
#define __SEQ_LOCAL_H
|
||||
|
||||
+#include "local.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
-#include "local.h"
|
||||
|
||||
#define SND_SEQ_OBUF_SIZE (16*1024) /* default size */
|
||||
#define SND_SEQ_IBUF_SIZE 500 /* in event_size aligned */
|
||||
diff --git a/src/seq/seq_midi_event.c b/src/seq/seq_midi_event.c
|
||||
index df09bde30eea..95a44e9bc323 100644
|
||||
--- a/src/seq/seq_midi_event.c
|
||||
+++ b/src/seq/seq_midi_event.c
|
||||
@@ -28,10 +28,10 @@
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
+#include "local.h"
|
||||
#if HAVE_MALLOC_H
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
-#include "local.h"
|
||||
|
||||
#ifndef DOC_HIDDEN
|
||||
|
||||
diff --git a/src/seq/seqmid.c b/src/seq/seqmid.c
|
||||
index 55651f3896f3..9ec93ee8ade1 100644
|
||||
--- a/src/seq/seqmid.c
|
||||
+++ b/src/seq/seqmid.c
|
||||
@@ -20,14 +20,12 @@
|
||||
*
|
||||
*/
|
||||
|
||||
-#include <stdio.h>
|
||||
-#include <stdlib.h>
|
||||
+#include "seq_local.h"
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <ctype.h>
|
||||
#include <sys/ioctl.h>
|
||||
-#include "seq_local.h"
|
||||
|
||||
/**
|
||||
* \brief queue controls - start/stop/continue
|
||||
diff --git a/src/userfile.c b/src/userfile.c
|
||||
index 4a740834313c..492ea9cbc238 100644
|
||||
--- a/src/userfile.c
|
||||
+++ b/src/userfile.c
|
||||
@@ -18,7 +18,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
-#include <config.h>
|
||||
+#include "config.h"
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <assert.h>
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,40 +0,0 @@
|
||||
From 96f60d829f2c9dc9ad9eda46410adaa41b4b0da0 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Tue, 10 Oct 2023 08:20:15 +0200
|
||||
Subject: [PATCH] seq: Fix typos in symbol version definitions
|
||||
|
||||
There were obvious typos in src/Versions.in that resulted in the
|
||||
undefined symbols. Correct those entries.
|
||||
|
||||
Fixes: 2aefb5c41cc0 ("seq: Add UMP support")
|
||||
Closes: https://github.com/alsa-project/alsa-lib/issues/356
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/Versions.in | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/Versions.in b/src/Versions.in
|
||||
index c8ac1c8277a3..c53a99fa7ab0 100644
|
||||
--- a/src/Versions.in
|
||||
+++ b/src/Versions.in
|
||||
@@ -158,13 +158,13 @@ ALSA_1.2.10 {
|
||||
@SYMBOL_PREFIX@snd_ctl_ump_block_info;
|
||||
@SYMBOL_PREFIX@snd_seq_ump_*;
|
||||
@SYMBOL_PREFIX@snd_seq_client_info_get_midi_version;
|
||||
- @SYMBOL_PREFIX@snd_seq_seq_client_info_get_ump_group_enabled;
|
||||
+ @SYMBOL_PREFIX@snd_seq_client_info_get_ump_group_enabled;
|
||||
@SYMBOL_PREFIX@snd_seq_client_info_get_ump_groupless_enabled;
|
||||
- @SYMBOL_PREFIX@snd_seq_seq_client_get_ump_conversion;
|
||||
+ @SYMBOL_PREFIX@snd_seq_client_info_get_ump_conversion;
|
||||
@SYMBOL_PREFIX@snd_seq_client_info_set_midi_version;
|
||||
- @SYMBOL_PREFIX@snd_seq_seq_client_info_set_ump_group_enabled;
|
||||
+ @SYMBOL_PREFIX@snd_seq_client_info_set_ump_group_enabled;
|
||||
@SYMBOL_PREFIX@snd_seq_client_info_set_ump_groupless_enabled;
|
||||
- @SYMBOL_PREFIX@snd_seq_seq_client_set_ump_conversion;
|
||||
+ @SYMBOL_PREFIX@snd_seq_client_info_set_ump_conversion;
|
||||
@SYMBOL_PREFIX@snd_seq_get_ump_endpoint_info;
|
||||
@SYMBOL_PREFIX@snd_seq_get_ump_block_info;
|
||||
@SYMBOL_PREFIX@snd_seq_set_ump_endpoint_info;
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,34 +0,0 @@
|
||||
From 915a71a2cdf6361f0fc77fa367a67910dc0288db Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Sat, 4 Nov 2023 10:05:39 +0100
|
||||
Subject: [PATCH] seq: Fix invalid sanity-check in
|
||||
snd_seq_set_input_buffer_size()
|
||||
|
||||
snd_seq_set_input_buffer_size() has an assert() call with packet_size,
|
||||
but it's still uninitialized at that point. Fix it with the real
|
||||
packet size.
|
||||
|
||||
Fixes: 2aefb5c41cc0 ("seq: Add UMP support")
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/seq/seq.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/seq/seq.c b/src/seq/seq.c
|
||||
index fd8ca30e2472..5ec737a7004f 100644
|
||||
--- a/src/seq/seq.c
|
||||
+++ b/src/seq/seq.c
|
||||
@@ -1269,9 +1269,9 @@ int snd_seq_set_input_buffer_size(snd_seq_t *seq, size_t size)
|
||||
size_t packet_size;
|
||||
|
||||
assert(seq && seq->ibuf);
|
||||
+ packet_size = get_packet_size(seq);
|
||||
assert(size >= packet_size);
|
||||
snd_seq_drop_input(seq);
|
||||
- packet_size = get_packet_size(seq);
|
||||
size = (size + packet_size - 1) / packet_size;
|
||||
if (size != seq->ibufsize) {
|
||||
char *newbuf;
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,42 +0,0 @@
|
||||
From f202ec3c23abf16a2382acc0de35900173e32160 Mon Sep 17 00:00:00 2001
|
||||
From: Hector Martin <marcan@marcan.st>
|
||||
Date: Sat, 28 Oct 2023 21:33:29 +0900
|
||||
Subject: [PATCH] mixer: simple: Support dB TLVs for CTL_SINGLE controls
|
||||
|
||||
dB mappings do not work for controls not named "* Volume", since we do not
|
||||
fall back to CTL_SINGLE in get_selem_ctl. Add that branch to make it
|
||||
work.
|
||||
|
||||
Fixes dB ranges for e.g. controls named "* Gain".
|
||||
|
||||
Closes: https://github.com/alsa-project/alsa-lib/pull/358
|
||||
Signed-off-by: Hector Martin <marcan@marcan.st>
|
||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||
---
|
||||
src/mixer/simple_none.c | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c
|
||||
index 846b0ca92467..dd03fcf13d01 100644
|
||||
--- a/src/mixer/simple_none.c
|
||||
+++ b/src/mixer/simple_none.c
|
||||
@@ -1155,11 +1155,12 @@ static selem_ctl_t *get_selem_ctl(selem_none_t *s, int dir)
|
||||
c = &s->ctls[CTL_CAPTURE_VOLUME];
|
||||
else
|
||||
return NULL;
|
||||
- if (! c->elem) {
|
||||
+ if (! c->elem)
|
||||
c = &s->ctls[CTL_GLOBAL_VOLUME];
|
||||
- if (! c->elem)
|
||||
- return NULL;
|
||||
- }
|
||||
+ if (! c->elem)
|
||||
+ c = &s->ctls[CTL_SINGLE];
|
||||
+ if (! c->elem)
|
||||
+ return NULL;
|
||||
if (c->type != SND_CTL_ELEM_TYPE_INTEGER)
|
||||
return NULL;
|
||||
return c;
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,66 +0,0 @@
|
||||
From 2fca03e792ef1b740e8a7370fdd360d0b627c84c Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Mon, 6 Nov 2023 16:27:11 +0100
|
||||
Subject: [PATCH] seq: Clear UMP event flag for legacy apps
|
||||
|
||||
It seems that some applications (at least Chrome WebMIDI) set random
|
||||
bits to the flags of event packet, and this confuses as if they were
|
||||
UMP-events, which are eventually filtered out.
|
||||
|
||||
Although it's a bug of applications, it's better to avoid the
|
||||
regressions. So this patch forcibly clears the UMP flag of the
|
||||
incoming and outgoing events when the application is running in the
|
||||
legacy mode (i.e. midi_version = 0).
|
||||
|
||||
Fixes: 2aefb5c41cc0 ("seq: Add UMP support")
|
||||
Closes: https://github.com/alsa-project/alsa-lib/issues/360
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/seq/seq.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/src/seq/seq.c b/src/seq/seq.c
|
||||
index 5ec737a7004f..643cf159f3ef 100644
|
||||
--- a/src/seq/seq.c
|
||||
+++ b/src/seq/seq.c
|
||||
@@ -4161,6 +4161,13 @@ int snd_seq_event_output(snd_seq_t *seq, snd_seq_event_t *ev)
|
||||
return result;
|
||||
}
|
||||
|
||||
+/* workaround for broken legacy apps that set UMP event bit unexpectedly */
|
||||
+static void clear_ump_for_legacy_apps(snd_seq_t *seq, snd_seq_event_t *ev)
|
||||
+{
|
||||
+ if (!seq->midi_version && snd_seq_ev_is_ump(ev))
|
||||
+ ev->flags &= ~SNDRV_SEQ_EVENT_UMP;
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* \brief output an event onto the lib buffer without draining buffer
|
||||
* \param seq sequencer handle
|
||||
@@ -4178,6 +4185,7 @@ int snd_seq_event_output_buffer(snd_seq_t *seq, snd_seq_event_t *ev)
|
||||
{
|
||||
int len;
|
||||
assert(seq && ev);
|
||||
+ clear_ump_for_legacy_apps(seq, ev);
|
||||
len = snd_seq_event_length(ev);
|
||||
if (len < 0)
|
||||
return -EINVAL;
|
||||
@@ -4238,6 +4246,7 @@ int snd_seq_event_output_direct(snd_seq_t *seq, snd_seq_event_t *ev)
|
||||
ssize_t len;
|
||||
void *buf;
|
||||
|
||||
+ clear_ump_for_legacy_apps(seq, ev);
|
||||
len = snd_seq_event_length(ev);
|
||||
if (len < 0)
|
||||
return len;
|
||||
@@ -4374,6 +4383,7 @@ static int snd_seq_event_retrieve_buffer(snd_seq_t *seq, snd_seq_event_t **retp)
|
||||
snd_seq_event_t *ev;
|
||||
|
||||
*retp = ev = (snd_seq_event_t *)(seq->ibuf + seq->ibufptr * packet_size);
|
||||
+ clear_ump_for_legacy_apps(seq, ev);
|
||||
seq->ibufptr++;
|
||||
seq->ibuflen--;
|
||||
if (! snd_seq_ev_is_variable(ev))
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,99 +0,0 @@
|
||||
From 94a5ddff9d5d85104755ee17b301c289a060cebf Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Mon, 6 Nov 2023 16:33:59 +0100
|
||||
Subject: [PATCH] seq: Simplify snd_seq_extract_output()
|
||||
|
||||
Now that we never put UMP events on the output buffer in the legacy
|
||||
mode, the check and skip of UMP events are no longer necessary.
|
||||
It means that ump_allowed argument is meaningless in extract_output(),
|
||||
too.
|
||||
|
||||
Let's drop the unnecessary check and move the code extract_output()
|
||||
into snd_seq_extract_output() again, and call this directly from
|
||||
snd_seq_ump_extract_output() for simplification.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/seq/seq.c | 52 ++++++++++++++++++++-------------------------------
|
||||
1 file changed, 20 insertions(+), 32 deletions(-)
|
||||
|
||||
diff --git a/src/seq/seq.c b/src/seq/seq.c
|
||||
index 643cf159f3ef..5eac4848b9c7 100644
|
||||
--- a/src/seq/seq.c
|
||||
+++ b/src/seq/seq.c
|
||||
@@ -4308,36 +4308,6 @@ int snd_seq_drain_output(snd_seq_t *seq)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static int extract_output(snd_seq_t *seq, snd_seq_event_t **ev_res, int ump_allowed)
|
||||
-{
|
||||
- size_t len, olen;
|
||||
- assert(seq);
|
||||
- if (ev_res)
|
||||
- *ev_res = NULL;
|
||||
- repeat:
|
||||
- if ((olen = seq->obufused) < sizeof(snd_seq_event_t))
|
||||
- return -ENOENT;
|
||||
- len = snd_seq_event_length((snd_seq_event_t *)seq->obuf);
|
||||
- if (olen < len)
|
||||
- return -ENOENT;
|
||||
- /* skip invalid UMP events */
|
||||
- if (snd_seq_ev_is_ump((snd_seq_event_t *)seq->obuf) && !ump_allowed) {
|
||||
- seq->obufused -= len;
|
||||
- memmove(seq->obuf, seq->obuf + len, seq->obufused);
|
||||
- goto repeat;
|
||||
- }
|
||||
- if (ev_res) {
|
||||
- /* extract the event */
|
||||
- if (alloc_tmpbuf(seq, len) < 0)
|
||||
- return -ENOMEM;
|
||||
- memcpy(seq->tmpbuf, seq->obuf, len);
|
||||
- *ev_res = (snd_seq_event_t *)seq->tmpbuf;
|
||||
- }
|
||||
- seq->obufused = olen - len;
|
||||
- memmove(seq->obuf, seq->obuf + len, seq->obufused);
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
/**
|
||||
* \brief extract the first event in output buffer
|
||||
* \param seq sequencer handle
|
||||
@@ -4351,7 +4321,25 @@ static int extract_output(snd_seq_t *seq, snd_seq_event_t **ev_res, int ump_allo
|
||||
*/
|
||||
int snd_seq_extract_output(snd_seq_t *seq, snd_seq_event_t **ev_res)
|
||||
{
|
||||
- return extract_output(seq, ev_res, 0);
|
||||
+ size_t len, olen;
|
||||
+ assert(seq);
|
||||
+ if (ev_res)
|
||||
+ *ev_res = NULL;
|
||||
+ if ((olen = seq->obufused) < sizeof(snd_seq_event_t))
|
||||
+ return -ENOENT;
|
||||
+ len = snd_seq_event_length((snd_seq_event_t *)seq->obuf);
|
||||
+ if (olen < len)
|
||||
+ return -ENOENT;
|
||||
+ if (ev_res) {
|
||||
+ /* extract the event */
|
||||
+ if (alloc_tmpbuf(seq, len) < 0)
|
||||
+ return -ENOMEM;
|
||||
+ memcpy(seq->tmpbuf, seq->obuf, len);
|
||||
+ *ev_res = (snd_seq_event_t *)seq->tmpbuf;
|
||||
+ }
|
||||
+ seq->obufused = olen - len;
|
||||
+ memmove(seq->obuf, seq->obuf + len, seq->obufused);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------*/
|
||||
@@ -4547,7 +4535,7 @@ int snd_seq_ump_extract_output(snd_seq_t *seq, snd_seq_ump_event_t **ev_res)
|
||||
{
|
||||
if (!seq->midi_version)
|
||||
return -EBADFD;
|
||||
- return extract_output(seq, (snd_seq_event_t **)ev_res, 1);
|
||||
+ return snd_seq_extract_output(seq, (snd_seq_event_t **)ev_res);
|
||||
}
|
||||
|
||||
/**
|
||||
--
|
||||
2.35.3
|
||||
|
@ -1,37 +0,0 @@
|
||||
From ed6b07084bfea4155bbc98bcf38508ab81bdd008 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Mon, 6 Nov 2023 16:36:55 +0100
|
||||
Subject: [PATCH] seq: Check protocol compatibility with the current version
|
||||
|
||||
There is no need for checking the protocol compatibility with another
|
||||
version, but we just need to check for the current version.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/seq/seq_hw.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/seq/seq_hw.c b/src/seq/seq_hw.c
|
||||
index b74948c81c9e..eeaf26e16d1c 100644
|
||||
--- a/src/seq/seq_hw.c
|
||||
+++ b/src/seq/seq_hw.c
|
||||
@@ -32,7 +32,6 @@ const char *_snd_module_seq_hw = "";
|
||||
#ifndef DOC_HIDDEN
|
||||
#define SNDRV_FILE_SEQ ALSA_DEVICE_DIRECTORY "seq"
|
||||
#define SNDRV_FILE_ALOADSEQ ALOAD_DEVICE_DIRECTORY "aloadSEQ"
|
||||
-#define SNDRV_SEQ_VERSION_MAX SNDRV_PROTOCOL_VERSION(1, 0, 2)
|
||||
|
||||
typedef struct {
|
||||
int fd;
|
||||
@@ -535,7 +534,7 @@ int snd_seq_hw_open(snd_seq_t **handle, const char *name, int streams, int mode)
|
||||
close(fd);
|
||||
return ret;
|
||||
}
|
||||
- if (SNDRV_PROTOCOL_INCOMPATIBLE(ver, SNDRV_SEQ_VERSION_MAX)) {
|
||||
+ if (SNDRV_PROTOCOL_INCOMPATIBLE(ver, SNDRV_SEQ_VERSION)) {
|
||||
close(fd);
|
||||
return -SND_ERROR_INCOMPATIBLE_VERSION;
|
||||
}
|
||||
--
|
||||
2.35.3
|
||||
|
BIN
alsa-lib-1.2.10.tar.bz2
(Stored with Git LFS)
BIN
alsa-lib-1.2.10.tar.bz2
(Stored with Git LFS)
Binary file not shown.
@ -1,16 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCAAdFiEE8E31BzesGohMSz1xg4BZbablnJEFAmTyDKoACgkQg4BZbabl
|
||||
nJHkUQ/9FBYbT0I6HvjfJmkYBfpRDRbSxPimqho6CYdHPS4gEBksGha1obBoFEnn
|
||||
HAmv8pFWn4tYOPGJ6RD+mGHBntc9W7Mzg6J7NTcoaGK3u4szPwZ4iPhn5QSMOGzH
|
||||
wRFJFb1jt1Ryj8eKJQSELsy2VMJzSj3cObu8nILJlKAeV9AJfAFyXRQPUjJZOkDr
|
||||
27oItHV2vtEaIndHTNHYOnkDrPPp0DplM+gfUhLP0ghu0hknQI7PuOJzN9AWqkVD
|
||||
UiMsVGdXvPTmJd0+nzzUSY5lmStWcp7kujH5er/0YpB1/SWS9GgN4YN5q5nUFgVA
|
||||
b5xBb3/8xW0EZ9j53X+PgCE57iMe5/5UCto70ITO4o44k0rev/9ixdzBc5J5dyls
|
||||
cRLtXJwnxNS82pG429uOkEBAe309JCMKpDlOksKbPpqbtvcRN3yXlE92GEuUIrHT
|
||||
VCPzNQd5XXYXX4E06/ScbpYvFqEyoT+Ph6cyunwoL9ocioj+tsB4fHi1exbwoy6+
|
||||
/rx/70NjtFEVCdRpuflNmQZGyTtDd+sfaxsanH8MK7jdZCIXHyLBKqSRIrSoc8v/
|
||||
sU7fzSPQ2zh1dnmjzm69l1z/YmPHf+gbGwC4Tb6Wq37o49APQYh2csz6z4E0pMP3
|
||||
WgSPuWyXfgsQg9vu1/D+DnQAQFHFK8q2JKmpf7QoXpFGMN3G2nI=
|
||||
=qe38
|
||||
-----END PGP SIGNATURE-----
|
BIN
alsa-lib-1.2.12.tar.bz2
(Stored with Git LFS)
Normal file
BIN
alsa-lib-1.2.12.tar.bz2
(Stored with Git LFS)
Normal file
Binary file not shown.
16
alsa-lib-1.2.12.tar.bz2.sig
Normal file
16
alsa-lib-1.2.12.tar.bz2.sig
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCAAdFiEE8E31BzesGohMSz1xg4BZbablnJEFAmZm7lAACgkQg4BZbabl
|
||||
nJEJtQ//So1c+bHwtmG/bMSFXnS8+fYf0DyjTydzonQGwCErHLfmOCLKRxlptR5Y
|
||||
erlDU7JSZIz0N5fI8CN8u/tFwA1asib36krpC8hfLu2euhiyJOHIeyYNXxxJCqhO
|
||||
gcDUhNKr9PnuBiaELB4yHuo7GulM1AroEVMR+BOD2w9D7vdxsny18VPW0lz0bFNb
|
||||
5ghrHFIN8Sd/9NwV3rrzk4/1G1ZDd1FkEM5VfVGO+dK43YCkRKQM+HPOVOvWkhfa
|
||||
23OODknLQtk3WJNE7j0TIg/BcbcaAa0AKx7n5GacsZ/yQRTjq/wT+DuKcfC/Mweg
|
||||
ST9YircBSx+GGE63VVAuAVRAkUrvu1imJVLKW8ugFu16X07gXMB6kVLyWQjf1aFZ
|
||||
4Tj6l8JOIHYcEtJmzaVbrvUx+5jJoDoN2m+dKOXbFeSWkshX/Yr0KnTeK1DqF93f
|
||||
f2PGxeDVQd1W+wMQUXqonJI6HtEUV71rubpvtvCzc41C4C9ZJ951Z1BtVIymLnXj
|
||||
pv3v92r/TkeC/5W/YeE3rRTvIAjJWGuL9o/plWNJxSvqy7j2rG7SS04iBGY7TVKq
|
||||
pKXs81Uc0PRBYOH79Xsw1c47yQf2gsRdK3+LuvlGfsQeOENfAl5pJOpYygCSYiU3
|
||||
7Dv5qx0CeoQ0dfMcriK2QGYw3quLPXR7Oh9+ZvhRtSNhV55d8kk=
|
||||
=/HYf
|
||||
-----END PGP SIGNATURE-----
|
35
alsa.changes
35
alsa.changes
@ -1,3 +1,38 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 13 14:51:29 UTC 2024 - Takashi Iwai <tiwai@suse.com>
|
||||
|
||||
- Update to alsa-lib 1.2.12:
|
||||
* pcm: plug support for iec958 subframe samples
|
||||
* pcm: ladspa - Skip missing ladspa directories
|
||||
* topology: correct version script path
|
||||
* ucm: define and describe Syntax 7
|
||||
* async handler cleanup fix
|
||||
* conf updates
|
||||
For details, see:
|
||||
https://www.alsa-project.org/wiki/Changes_v1.2.11_v1.2.12#alsa-lib
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 2 14:49:30 UTC 2024 - Takashi Iwai <tiwai@suse.com>
|
||||
|
||||
- Updated to alsa-lib 1.2.11:
|
||||
* auto-tools fixes, versioned symbol fixes
|
||||
* support dB TLVs for single controls
|
||||
* various PCM updates, including subformat extensions
|
||||
* UMP and sequencer API fixes
|
||||
For details, see:
|
||||
https://www.alsa-project.org/wiki/Changes_v1.2.10_v1.2.11#alsa-lib
|
||||
- Dropped obsoleted patches:
|
||||
0001-control.h-Fix-ump-header-file-detection.patch
|
||||
0002-global.h-move-__STRING-macro-outside-PIC-ifdef-block.patch
|
||||
0003-pcm-Fix-segfault-with-32bit-libs.patch
|
||||
0004-reshuffle-included-files-to-include-config.h-as-firs.patch
|
||||
0005-seq-Fix-typos-in-symbol-version-definitions.patch
|
||||
0006-seq-Fix-invalid-sanity-check-in-snd_seq_set_input_bu.patch
|
||||
0007-mixer-simple-Support-dB-TLVs-for-CTL_SINGLE-controls.patch
|
||||
0008-seq-Clear-UMP-event-flag-for-legacy-apps.patch
|
||||
0009-seq-Simplify-snd_seq_extract_output.patch
|
||||
0010-seq-Check-protocol-compatibility-with-the-current-ve.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 7 14:51:05 UTC 2023 - Takashi Iwai <tiwai@suse.com>
|
||||
|
||||
|
14
alsa.spec
14
alsa.spec
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package alsa
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -32,7 +32,7 @@
|
||||
%endif
|
||||
|
||||
Name: alsa
|
||||
Version: 1.2.10
|
||||
Version: 1.2.12
|
||||
Release: 0
|
||||
Summary: Advanced Linux Sound Architecture
|
||||
License: LGPL-2.1-or-later
|
||||
@ -56,16 +56,6 @@ Source34: alsa-init.sh
|
||||
# from https://www.alsa-project.org/files/pub/gpg-release-key-v1.txt
|
||||
Source35: alsa.keyring
|
||||
# upstream fixes
|
||||
Patch1: 0001-control.h-Fix-ump-header-file-detection.patch
|
||||
Patch2: 0002-global.h-move-__STRING-macro-outside-PIC-ifdef-block.patch
|
||||
Patch3: 0003-pcm-Fix-segfault-with-32bit-libs.patch
|
||||
Patch4: 0004-reshuffle-included-files-to-include-config.h-as-firs.patch
|
||||
Patch5: 0005-seq-Fix-typos-in-symbol-version-definitions.patch
|
||||
Patch6: 0006-seq-Fix-invalid-sanity-check-in-snd_seq_set_input_bu.patch
|
||||
Patch7: 0007-mixer-simple-Support-dB-TLVs-for-CTL_SINGLE-controls.patch
|
||||
Patch8: 0008-seq-Clear-UMP-event-flag-for-legacy-apps.patch
|
||||
Patch9: 0009-seq-Simplify-snd_seq_extract_output.patch
|
||||
Patch10: 0010-seq-Check-protocol-compatibility-with-the-current-ve.patch
|
||||
# rest suse fixes
|
||||
Patch101: alsa-lib-ignore-non-accessible-ALSA_CONFIG_PATH.patch
|
||||
BuildRequires: doxygen
|
||||
|
Loading…
Reference in New Issue
Block a user