[alsa-devel] [Q] playing / recording mono on a stereo-only hardware

Guennadi Liakhovetski g.liakhovetski at gmx.de
Fri Feb 5 11:14:44 CET 2010


On Fri, 5 Feb 2010, Raymond Yau wrote:

> 2010/2/5 Guennadi Liakhovetski <g.liakhovetski at gmx.de>
> 
> > On Thu, 4 Feb 2010, Raymond Yau wrote:
> >
> > I would see your reply sooner, if you used reply-to-all.
> >
> > > if LIBASOUND_DEBUG = 1 cannot tell you which parameter fail in
> > hw_params() ,
> > > you will need to define RULES_DEBUG in alsa-kernel/core/pcm_native.c and
> > > compile driver with debug=verbose
> > >
> > > -#undef RULES_DEBUG
> > > +#define RULES DEBUG 1
> >
> > That's already on too. Not sure what you mean by "compile driver with
> > debug=verbose," supposedly, some kernel ALSA debug parameter. Since this
> > is my driver, I can certainly add any debugging there, but it seems
> > obvious to me, that the kernel is still getting a mono configuration,
> > which shouldn't be the cae.
> >
> > > you can find out how ALSA refine the hw parameters by examing the system
> > log
> >
> > If you mean "dmesg" output, then, as I said, there isn't much to look for
> > there - the kernel is configured for mono...
> >
> > Thanks
> > Guennadi
> >
> 
> 
> your output is quite different from mine
> 
> arecord -v -f cd -c 1 -d 30 -r 8000 -Dplughw:1,0 any.wav
> Recording WAVE 'any.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
> Plug PCM: Route conversion PCM (sformat=S16_LE)
>   Transformation table:
>     0 <- 0*0.5 + 1*0.5
> Its setup is:
>   stream       : CAPTURE
>   access       : RW_INTERLEAVED
>   format       : S16_LE
>   subformat    : STD
>   channels     : 1
>   rate         : 8000
>   exact rate   : 8000 (8000/1)
>   msbits       : 16
>   buffer_size  : 3968
>   period_size  : 992
>   period_time  : 124000
>   tstamp_mode  : NONE
>   period_step  : 1
>   avail_min    : 992
>   period_event : 0
>   start_threshold  : 1
>   stop_threshold   : 3968
>   silence_threshold: 0
>   silence_size : 0
>   boundary     : 2080374784
> Slave: Hardware PCM card 1 'HDA Intel' device 0 subdevice 0
> Its setup is:
>   stream       : CAPTURE
>   access       : MMAP_INTERLEAVED
>   format       : S16_LE
>   subformat    : STD
>   channels     : 2

Of course, in my case set_params() in aplay.c exit earlier as 
snd_pcm_hw_params() returns an error - see

Unable to install hw params:

message in my log. Maybe you could try current alsa-lib and alsa-util 
versions?

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/


More information about the Alsa-devel mailing list