[alsa-devel] Hidden rate conversion, and Alsa configuration

stan stanl at cox.net
Fri Jul 27 22:03:03 CEST 2007


On Fri, 27 Jul 2007 15:38:28 -0400
"Lee Revell" <rlrevell at joe-job.com> wrote:

> On 7/27/07, stan <stanl at cox.net> wrote:
> > On Fri, 27 Jul 2007 11:59:53 -0400
> > "Lee Revell" <rlrevell at joe-job.com> wrote:
> >
> > > On 7/27/07, Alan Horstmann <gineera at aspect135.co.uk> wrote:
> > > > Could you give pointers as to how to modify Alsa configuration
> > > > so that rate conversion can never happen, as I would prefer to
> > > > have an error accessing the sound card rather than unknown
> > > > conversion, which in my use should never be neccesary anyway.
> > >
> > > Simply open the hw device rather than the default, dmix, or plughw
> > > device.
> > >
> > > Lee
> >
> > Lee,
> >
> > Are you saying that plughw *does* do hidden conversion?  I thought
> > its definition was equivalent to
> >
> > newplug {
> >         type plug
> >         slave {
> >                 pcm "hw:0,0"
> >         }
> > }
> >
> 
> It's not "hidden" conversion, by using the plughw device you are
> explicitly asking ALSA to convert the PCM stream to a format the
> hardware supports.
> 
> Lee

Thanks Lee.  I didn't understand that.  Does that mean that I can't use
a call like

err = snd_pcm_hw_params_set_format (alsa_dev, hw_params, SND_PCM_FORMAT_FLOAT64);

to a device opened to the hw plug if the native format is S32_LE?  I'm
guessing that I have to know (or read) the internal format of the card
and send it data only in that format.  I end up doing the conversion
instead of alsa unless I happen to hit a card that has the same
internal representation as I'm using.

And will plughw skip rate conversion if it is a rate the hardware
natively supports?  So I could send a buffer of doubles to alsa and it
would convert it to the cards native internal representation,
but skip the rate conversion if it is a hardware supported one.

I really want to avoid rate resampling if I can, while format
conversion has to occur somewhere in order to match the hardware in
most cases.  I assume that any format conversion alsa does
is at least as good as one I would do myself.  While the rate
resampling can introduce throughput issues and inaccuracies in the
sound stream.


More information about the Alsa-devel mailing list