On Tue, 11 Dec 2007, Timur Tabi wrote: > 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 }, > }, ^^^^^^ Good catch. It looks like a bug and your proposal seems to be correct. Jaroslav ----- Jaroslav Kysela <perex@xxxxxxxx> Linux Kernel Sound Maintainer ALSA Project _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel