- Upstream fix for dlobj cache crash (bnc#814250) 0001-Fix-doubly-call-of-dlclose-in-dlobj-caching-code.patch - Upstream patches for support DSD 0002-pcm.c-fix-indentation.patch 0003-bring-pcm.h-and-pcm.c-in-sync-with-the-kernel-list.patch - Fix compile errors with C90 (bnc#817077) 0004-Use-__inline__-for-exported-headers.patch 0005-Add-definition-of-__inline__-for-non-GCC.patch OBS-URL: https://build.opensuse.org/request/show/173315 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa?expand=0&rev=131
74 lines
2.6 KiB
Diff
74 lines
2.6 KiB
Diff
From 886f0cc3c274643de464e646535afb4ceee1d816 Mon Sep 17 00:00:00 2001
|
|
From: Daniel Mack <zonque@gmail.com>
|
|
Date: Thu, 18 Apr 2013 10:37:50 +0200
|
|
Subject: [PATCH 3/5] bring pcm.h and pcm.c in sync with the kernel list
|
|
|
|
In particular, this adds definitions and descriptions for G.723 and
|
|
DSD types.
|
|
|
|
Signed-off-by: Daniel Mack <zonque@gmail.com>
|
|
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
---
|
|
include/pcm.h | 14 +++++++++++++-
|
|
src/pcm/pcm.c | 12 ++++++++++++
|
|
2 files changed, 25 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/include/pcm.h b/include/pcm.h
|
|
index d94ba90..e440030 100644
|
|
--- a/include/pcm.h
|
|
+++ b/include/pcm.h
|
|
@@ -199,7 +199,19 @@ typedef enum _snd_pcm_format {
|
|
SND_PCM_FORMAT_U18_3LE,
|
|
/** Unsigned 18bit Big Endian in 3bytes format */
|
|
SND_PCM_FORMAT_U18_3BE,
|
|
- SND_PCM_FORMAT_LAST = SND_PCM_FORMAT_U18_3BE,
|
|
+ /* G.723 (ADPCM) 24 kbit/s, 8 samples in 3 bytes */
|
|
+ SND_PCM_FORMAT_G723_24,
|
|
+ /* G.723 (ADPCM) 24 kbit/s, 1 sample in 1 byte */
|
|
+ SND_PCM_FORMAT_G723_24_1B,
|
|
+ /* G.723 (ADPCM) 40 kbit/s, 8 samples in 3 bytes */
|
|
+ SND_PCM_FORMAT_G723_40,
|
|
+ /* G.723 (ADPCM) 40 kbit/s, 1 sample in 1 byte */
|
|
+ SND_PCM_FORMAT_G723_40_1B,
|
|
+ /* Direct Stream Digital (DSD) in 1-byte samples (x8) */
|
|
+ SND_PCM_FORMAT_DSD_U8,
|
|
+ /* Direct Stream Digital (DSD) in 2-byte samples (x16) */
|
|
+ SND_PCM_FORMAT_DSD_U16_LE,
|
|
+ SND_PCM_FORMAT_LAST = SND_PCM_FORMAT_DSD_U16_LE,
|
|
|
|
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
|
/** Signed 16 bit CPU endian */
|
|
diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
|
|
index 2a87a7b..438fb3f 100644
|
|
--- a/src/pcm/pcm.c
|
|
+++ b/src/pcm/pcm.c
|
|
@@ -1558,6 +1558,12 @@ static const char *const snd_pcm_format_names[] = {
|
|
FORMAT(S18_3BE),
|
|
FORMAT(U18_3LE),
|
|
FORMAT(U18_3BE),
|
|
+ FORMAT(G723_24),
|
|
+ FORMAT(G723_24_1B),
|
|
+ FORMAT(G723_40),
|
|
+ FORMAT(G723_40_1B),
|
|
+ FORMAT(DSD_U8),
|
|
+ FORMAT(DSD_U16_LE),
|
|
};
|
|
|
|
static const char *const snd_pcm_format_aliases[SND_PCM_FORMAT_LAST+1] = {
|
|
@@ -1611,6 +1617,12 @@ static const char *const snd_pcm_format_descriptions[] = {
|
|
FORMATD(S18_3BE, "Signed 18 bit Big Endian in 3bytes"),
|
|
FORMATD(U18_3LE, "Unsigned 18 bit Little Endian in 3bytes"),
|
|
FORMATD(U18_3BE, "Unsigned 18 bit Big Endian in 3bytes"),
|
|
+ FORMATD(G723_24, "G.723 (ADPCM) 24 kbit/s, 8 samples in 3 bytes"),
|
|
+ FORMATD(G723_24_1B, "G.723 (ADPCM) 24 kbit/s, 1 sample in 1 byte"),
|
|
+ FORMATD(G723_40, "G.723 (ADPCM) 40 kbit/s, 8 samples in 3 bytes"),
|
|
+ FORMATD(G723_40_1B, "G.723 (ADPCM) 40 kbit/s, 1 sample in 1 byte"),
|
|
+ FORMATD(DSD_U8, "Direct Stream Digital, 1-byte (x8), oldest bit in MSB"),
|
|
+ FORMATD(DSD_U16_LE, "Direct Stream Digital, 2-byte (x16), little endian, oldest bits in MSB"),
|
|
};
|
|
|
|
static const char *const snd_pcm_type_names[] = {
|
|
--
|
|
1.8.2.1
|
|
|