Re: S24_LE is 3 bytes ? in alsa-lib example pcm.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 10 Jul 2008, Takashi Iwai wrote:

> At Thu, 10 Jul 2008 12:19:05 +0200 (CEST),
> Jaroslav Kysela wrote:
> > 
> > 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).
> 
> I think Clemens is right.  The program uses snd_pcm_format_width()
> wrongly.  Also, it won't work properly with strict aliasing...

Yes, the patch looks good. I overlooked that the area initialization is 
directly in pcm.c code (I looked only to generate_sine(). I tested it and 
it produces good samples. I'm getting some underruns on my notebook with 
24-bit formats (but it's probably different problem).

					Jaroslav

-----
Jaroslav Kysela <perex@xxxxxxxx>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux