[alsa-devel] snd_pcm_hw_params_set_format fails with invalid argument

stan stanl at cox.net
Fri Aug 3 20:20:49 CEST 2007

Fedora 7 upgraded alsa to 1.0.14 from RC3.  I was going to test the
default device sound for my prior problem (as requested by Takashi
weeks ago). Unfortunately when I try to run my app it won't start.  The
snd_pcm_hw_params_set_format fails when I try to use it as follows.

  err = snd_pcm_hw_params_set_access (alsa_dev, hw_params, ND_PCM_ACCESS_RW_INTERLEAVED);
	if (err < 0)
	{	fprintf (stderr, "cannot set access type (%s)\n", snd_strerror (err)) ;
		goto catch_error ;
		} ;

  err = snd_pcm_hw_params_set_format (alsa_dev, hw_params, SND_PCM_FORMAT_FLOAT64_LE);
  //err = snd_pcm_hw_params_set_format (alsa_dev, hw_params, SND_PCM_FORMAT_S32_LE);
	if (err < 0)
	{	fprintf (stderr, "cannot set sample format (%s)\n", snd_strerror (err)) ;
		goto catch_error ;
		} ;

cannot set sample format (Invalid argument)

It compiles cleanly.  When I replace the SND_PCM_FORMAT_FLOAT64_LE
with the S32_LE, it sets it, but of course the sound is garbage
as it is still receiving doubles.

This code worked fine under RC3.
Is there some change that occurred in the step from 1.0.14.rc3 to
1.0.14 that would explain the above and suggest a fix?

Thank you.

$ uname -r

$ cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.14 (Thu May 31
09:03:25 2007 UTC).

$ ls /proc/asound/card0
ice1724  id  oss_mixer  pcm0c  pcm0p  pcm1p  pcm2p

More information about the Alsa-devel mailing list