[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