[alsa-devel] 24 bit sample embedded in 32 bits
perex at perex.cz
Mon Jul 2 13:02:49 CEST 2012
Date 2.7.2012 12:11, Vipin Kumar wrote:
> I assume that the alsa framework expects the 24 bit sample data to be
> packed one after the other. for example while recording a 2 channel, 24
> bit sample data, typically the dma reads a fifo (which receives data
> from adc) and prepares a buffer which is then passed to the upper layers.
> This buffer is expeted to be 24byte left channel and then 24 byte right
> channel. Am I right?
> If the above assumption is correct, I need to find a way to tell the
> framework that the data is 24bit but is embedded in 32 bit. ie 32bit
> left and then 32 bit right channel data
> I am tending to think that there has to be a way but I am unable to find
> it. Can you please point me to the right direction
Use S/U24 or S/U32 formats - look to adriver.h for SNDRV_PCM_FORMAT
constants. S/U24 expects 24-bit samples with zero MSB in 32-bit words.
S/U32 expects 32-bit samples (LSB is zero for 24-bit data).
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project; Red Hat, Inc.
More information about the Alsa-devel