On Thu, 10 Jul 2008, Clemens Ladisch wrote:
Norbert van Bolhuis wrote:
as far as I know: sample format S24_LE is 24bit sample in 4 bytes sample format S24_3LE is 24bit sample in 3 bytes (why else have separate definitions), right ?
Yes.
In the ALSA-LIb example /test/pcm.c however (http://www.alsa-project.org/alsa-doc/alsa-lib/_2test_2pcm_8c-example.html) there is no diff between the 2 sample formats.
That example program uses snd_pcm_format_width() although it should have used snd_pcm_format_physical_width() when calculating memory buffer sizes.
I think that the problem is in wrong area->step calculation in alsa-lib, but I'm still investigating where the real culprit is. The snd_pcm_format_width() is used only for sample filling (which is OK).
Jaroslav
----- Jaroslav Kysela perex@perex.cz Linux Kernel Sound Maintainer ALSA Project, Red Hat, Inc.