Commit 15c0cee6c809a137e0fc7f1d2b0867cc03473c0c
Committed by
Takashi Iwai
1 parent
67a3e12b05
Exists in
master
and in
4 other branches
ALSA: pcm: Define G723 3-bit and 5-bit formats
This defines the 24bps and 40bps (8khz sample rate) G.723 codec formats. They are going to be used once I submit the driver for an mpeg4/g723 compression card. I've updated the signed value to -1 as per Takashi's comments since these are non-linear formats. Signed-off-by: Ben Collins <bcollins@bluecherry.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Showing 3 changed files with 25 additions and 1 deletions Side-by-side Diff
include/sound/asound.h
... | ... | @@ -212,7 +212,11 @@ |
212 | 212 | #define SNDRV_PCM_FORMAT_S18_3BE ((__force snd_pcm_format_t) 41) /* in three bytes */ |
213 | 213 | #define SNDRV_PCM_FORMAT_U18_3LE ((__force snd_pcm_format_t) 42) /* in three bytes */ |
214 | 214 | #define SNDRV_PCM_FORMAT_U18_3BE ((__force snd_pcm_format_t) 43) /* in three bytes */ |
215 | -#define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_U18_3BE | |
215 | +#define SNDRV_PCM_FORMAT_G723_24 ((__force snd_pcm_format_t) 44) /* 8 samples in 3 bytes */ | |
216 | +#define SNDRV_PCM_FORMAT_G723_24_1B ((__force snd_pcm_format_t) 45) /* 1 sample in 1 byte */ | |
217 | +#define SNDRV_PCM_FORMAT_G723_40 ((__force snd_pcm_format_t) 46) /* 8 Samples in 5 bytes */ | |
218 | +#define SNDRV_PCM_FORMAT_G723_40_1B ((__force snd_pcm_format_t) 47) /* 1 sample in 1 byte */ | |
219 | +#define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_G723_40_1B | |
216 | 220 | |
217 | 221 | #ifdef SNDRV_LITTLE_ENDIAN |
218 | 222 | #define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_LE |
include/sound/pcm.h
... | ... | @@ -174,6 +174,10 @@ |
174 | 174 | #define SNDRV_PCM_FMTBIT_U18_3LE (1ULL << SNDRV_PCM_FORMAT_U18_3LE) |
175 | 175 | #define SNDRV_PCM_FMTBIT_S18_3BE (1ULL << SNDRV_PCM_FORMAT_S18_3BE) |
176 | 176 | #define SNDRV_PCM_FMTBIT_U18_3BE (1ULL << SNDRV_PCM_FORMAT_U18_3BE) |
177 | +#define SNDRV_PCM_FMTBIT_G723_24 (1ULL << SNDRV_PCM_FORMAT_G723_24) | |
178 | +#define SNDRV_PCM_FMTBIT_G723_24_1B (1ULL << SNDRV_PCM_FORMAT_G723_24_1B) | |
179 | +#define SNDRV_PCM_FMTBIT_G723_40 (1ULL << SNDRV_PCM_FORMAT_G723_40) | |
180 | +#define SNDRV_PCM_FMTBIT_G723_40_1B (1ULL << SNDRV_PCM_FORMAT_G723_40_1B) | |
177 | 181 | |
178 | 182 | #ifdef SNDRV_LITTLE_ENDIAN |
179 | 183 | #define SNDRV_PCM_FMTBIT_S16 SNDRV_PCM_FMTBIT_S16_LE |
sound/core/pcm_misc.c
... | ... | @@ -128,6 +128,14 @@ |
128 | 128 | .width = 4, .phys = 4, .le = -1, .signd = -1, |
129 | 129 | .silence = {}, |
130 | 130 | }, |
131 | + [SNDRV_PCM_FORMAT_G723_24] = { | |
132 | + .width = 3, .phys = 3, .le = -1, .signd = -1, | |
133 | + .silence = {}, | |
134 | + }, | |
135 | + [SNDRV_PCM_FORMAT_G723_40] = { | |
136 | + .width = 5, .phys = 5, .le = -1, .signd = -1, | |
137 | + .silence = {}, | |
138 | + }, | |
131 | 139 | /* FIXME: the following three formats are not defined properly yet */ |
132 | 140 | [SNDRV_PCM_FORMAT_MPEG] = { |
133 | 141 | .le = -1, .signd = -1, |
... | ... | @@ -185,6 +193,14 @@ |
185 | 193 | [SNDRV_PCM_FORMAT_U18_3BE] = { |
186 | 194 | .width = 18, .phys = 24, .le = 0, .signd = 0, |
187 | 195 | .silence = { 0x02, 0x00, 0x00 }, |
196 | + }, | |
197 | + [SNDRV_PCM_FORMAT_G723_24_1B] = { | |
198 | + .width = 3, .phys = 8, .le = -1, .signd = -1, | |
199 | + .silence = {}, | |
200 | + }, | |
201 | + [SNDRV_PCM_FORMAT_G723_40_1B] = { | |
202 | + .width = 5, .phys = 8, .le = -1, .signd = -1, | |
203 | + .silence = {}, | |
188 | 204 | }, |
189 | 205 | }; |
190 | 206 |