In particular, this adds definitions and descriptions for G.723 and DSD types.
Signed-off-by: Daniel Mack zonque@gmail.com --- 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 2235678..ec4fb1c 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 8-bit sample frames */ + SND_PCM_FORMAT_DSD_U8, + /* Direct Stream Digital (DSD) in 16-bit sample frames */ + SND_PCM_FORMAT_DSD_U16, + SND_PCM_FORMAT_LAST = SND_PCM_FORMAT_DSD_U16,
#if __BYTE_ORDER == __LITTLE_ENDIAN /** Signed 16 bit CPU endian */ diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c index 2963711..9744060 100644 --- a/src/pcm/pcm.c +++ b/src/pcm/pcm.c @@ -1554,6 +1554,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), };
static const char *const snd_pcm_format_aliases[SND_PCM_FORMAT_LAST+1] = { @@ -1607,6 +1613,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 (DSD), 1 byte per sample"), + FORMATD(DSD_U16, "Direct Stream Digital (DSD), 2 bytes per sample"), };
static const char *const snd_pcm_type_names[] = {