[alsa-devel] Assert in pcm_params.c

Raymond Yau superquad.vortex2 at gmail.com
Wed May 13 18:03:40 CEST 2015


> > > The following assert is being hit in pcm_params.c:
> > >
> > > "pcm_params.c:2249: snd1_pcm_hw_params_slave: Assertion `err >= 0'
> > > failed."
> > >
> > > This is from a developer using Portaudio in his own application; I
have
> > > yet to ascertain full details, but it is trying successive sample
rates
> > > to see which are valid.
> >
> > Further info: this occurs with an Intel motherboard/soundcard,
attempting
> > to open and config the stream at 44100 using front, surround or hdmi
pcm,
> > having previously opened and tried at a lower, not-supported samplerate,
> > and closed. AFAIK other pcms work OK.
> >
> > The assert is hit with all current Debian and Ubuntu distros, for
example
> >      Debian 8 (jessie) 32 bit:  kernel 3.16.0-4-686-pae (Alsa 1.0.28)
> > but is not seen with Fedora 20 or OpenSuse 12.1 (do they have asserts
> > off?).
> >
> > > Does this point to a flaw in the configuration or possibly a bug in
> > > Alsa-lib or can it occur just as a result of misuse of the Alsa API?
> >
> > I will try to conceive some more tests.  How can we debug this further?
>
> A minimal self-contained demo program ('test-format') has been developed
and
> is attached, that demonstrates the issue 100% on the reporters machine
> (HDA-Intel, 6-ch I believe).  The output is:
>
> root at Xeon:/home/patest# ./test-format
> Testing device front
> Num channels 6
> Testing rate: 22050   Result:...Invalid Sample Rate
> Testing rate: 32000   Result:...Invalid Sample Rate
> test-format: pcm_params.c:2249: snd1_pcm_hw_params_slave: Assertion `err
>=
> 0' failed.
> Testing rate: 44100   Aborted
>
> Alsa-info is at:
>
> http://www.alsa-project.org/db/?f=19dfeee29f73007e61a00a8fabe3c958f7cb8e87
>
> This apparently happens with or without Pulseaudio running, with just the
> single 44100 rate, and also with surround devices.  Also, on all current
> Debian and Ubuntu - we have focused on Jessie.
>
> I do not have a machine with similar hardware, so cannot duplicate the
> results.

Cannot reproduce the assert

But the only plugin associated with front device is softvol

Do the assert still occur with hw device ?(without softvol plugin)

You need to provide debug output by  define RULES_DEBUG in pcm_params.c

What value do the distribution use for hda prealloc max size ?

snd_pcm_hw_params() may fail with invalid  argument even when
pa_isFormataupported return true


More information about the Alsa-devel mailing list