[alsa-devel] 24 bit sample embedded in 32 bits
Jaroslav Kysela
perex at perex.cz
Mon Jul 2 13:02:49 CEST 2012
Date 2.7.2012 12:11, Vipin Kumar wrote:
> Hello,
>
> 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
--
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project; Red Hat, Inc.
More information about the Alsa-devel
mailing list