aboutsummaryrefslogtreecommitdiff
path: root/include/pcm.h
diff options
context:
space:
mode:
authorMaciej S. Szmigiero <mail@maciej.szmigiero.name>2017-12-14 14:52:07 +0100
committerTakashi Iwai <tiwai@suse.de>2017-12-18 15:40:36 +0100
commitd67e42c139efe4965c2702ed791a77bfcccd2337 (patch)
tree351fc8b78f1266df833344b60137443260f0b40e /include/pcm.h
parent22e6b3c2000d5a2f9a5952c46f3dcfb3ef5f1a88 (diff)
pcm: add and describe SND_PCM_FORMAT_{S, U}20
This patch adds and describes in various functions that query format properties SND_PCM_FORMAT_{S,U}20 formats that were recently added to the kernel as SNDRV_PCM_FORMAT_{S,U}20. These formats are similar to existing 20-bit PCM formats SND_PCM_FORMAT_{S,U}20_3, however they occupy 4 bytes instead of 3. Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name> Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'include/pcm.h')
-rw-r--r--include/pcm.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/include/pcm.h b/include/pcm.h
index e05777a7..2619c8cd 100644
--- a/include/pcm.h
+++ b/include/pcm.h
@@ -175,6 +175,14 @@ typedef enum _snd_pcm_format {
SND_PCM_FORMAT_MPEG,
/** GSM */
SND_PCM_FORMAT_GSM,
+ /** Signed 20bit Little Endian in 4bytes format, LSB justified */
+ SND_PCM_FORMAT_S20_LE,
+ /** Signed 20bit Big Endian in 4bytes format, LSB justified */
+ SND_PCM_FORMAT_S20_BE,
+ /** Unsigned 20bit Little Endian in 4bytes format, LSB justified */
+ SND_PCM_FORMAT_U20_LE,
+ /** Unsigned 20bit Big Endian in 4bytes format, LSB justified */
+ SND_PCM_FORMAT_U20_BE,
/** Special */
SND_PCM_FORMAT_SPECIAL = 31,
/** Signed 24bit Little Endian in 3bytes format */
@@ -239,7 +247,11 @@ typedef enum _snd_pcm_format {
/** Float 64 bit CPU endian */
SND_PCM_FORMAT_FLOAT64 = SND_PCM_FORMAT_FLOAT64_LE,
/** IEC-958 CPU Endian */
- SND_PCM_FORMAT_IEC958_SUBFRAME = SND_PCM_FORMAT_IEC958_SUBFRAME_LE
+ SND_PCM_FORMAT_IEC958_SUBFRAME = SND_PCM_FORMAT_IEC958_SUBFRAME_LE,
+ /** Signed 20bit in 4bytes format, LSB justified, CPU Endian */
+ SND_PCM_FORMAT_S20 = SND_PCM_FORMAT_S20_LE,
+ /** Unsigned 20bit in 4bytes format, LSB justified, CPU Endian */
+ SND_PCM_FORMAT_U20 = SND_PCM_FORMAT_U20_LE,
#elif __BYTE_ORDER == __BIG_ENDIAN
/** Signed 16 bit CPU endian */
SND_PCM_FORMAT_S16 = SND_PCM_FORMAT_S16_BE,
@@ -258,7 +270,11 @@ typedef enum _snd_pcm_format {
/** Float 64 bit CPU endian */
SND_PCM_FORMAT_FLOAT64 = SND_PCM_FORMAT_FLOAT64_BE,
/** IEC-958 CPU Endian */
- SND_PCM_FORMAT_IEC958_SUBFRAME = SND_PCM_FORMAT_IEC958_SUBFRAME_BE
+ SND_PCM_FORMAT_IEC958_SUBFRAME = SND_PCM_FORMAT_IEC958_SUBFRAME_BE,
+ /** Signed 20bit in 4bytes format, LSB justified, CPU Endian */
+ SND_PCM_FORMAT_S20 = SND_PCM_FORMAT_S20_BE,
+ /** Unsigned 20bit in 4bytes format, LSB justified, CPU Endian */
+ SND_PCM_FORMAT_U20 = SND_PCM_FORMAT_U20_BE,
#else
#error "Unknown endian"
#endif