[alsa-devel] Question about pcm_formats[] array in sound/core/pcm_misc.c
Timur Tabi
timur at freescale.com
Tue Dec 11 21:31:32 CET 2007
I'm confused about the entries for unsigned 24-bit sound in the pcm_formats[] array:
[SNDRV_PCM_FORMAT_U24_BE] = {
.width = 24, .phys = 32, .le = 0, .signd = 0,
.silence = { 0x80, 0x00, 0x00 },
},
and
[SNDRV_PCM_FORMAT_U24_3BE] = {
.width = 24, .phys = 24, .le = 0, .signd = 0,
.silence = { 0x80, 0x00, 0x00 },
},
SNDRV_PCM_FORMAT_U24_BE means a 24-bit sample packed into a 32-bit word. So I
presume that if the 24-bit sample is:
0x123456
then when that sample is written to memory, it looks like this:
X X + 1 X + 2 X + 3
0x00 0x12 0x34 0x56
(where X is some address in memory).
If that's so, shouldn't the entry for SNDRV_PCM_FORMAT_U24_BE look like this:
[SNDRV_PCM_FORMAT_U24_BE] = {
.width = 24, .phys = 32, .le = 0, .signd = 0,
.silence = { 0x00, 0x80, 0x00, 0x00 },
}, ^^^^^^
--
Timur Tabi
Linux kernel developer at Freescale
More information about the Alsa-devel
mailing list