What is the semantics of snd_pcm_hw_params_any?

GitHub issues - opened github at alsa-project.org
Sat Feb 20 00:52:41 CET 2021


alsa-project/alsa-lib issue #119 was opened from jpalus:

It is not really a bug report but rather a request for clarification in attempt to figure out who is to blame for incorrect pulseaudio behavior.

I've got two different cards -- one internal and one USB -- which behave quite differently for this simple high level code:
```
snd_pcm_open()
snd_pcm_hw_params_any()
iterate snd_pcm_hw_params_test_rate() to check for supported rates
snd_pcm_hw_params_set_rate_near(44100)
snd_pcm_hw_params()
snd_pcm_hw_params_any()
iterate snd_pcm_hw_params_test_rate() to check for supported rates
```

In essence supported sample rates are queried twice, always with snd_pcm_hw_params_any() before them, but separated by snd_pcm_hw_params_set_rate_near().

Now with internal card both iterations report 7 supported rates while for USB first iteration reports 4 rates and second only one (44100). Is that expected or is snd_pcm_hw_params_any() supposed to provide configuration which would result in all rates reported again?

Issue URL     : https://github.com/alsa-project/alsa-lib/issues/119
Repository URL: https://github.com/alsa-project/alsa-lib


More information about the Alsa-devel mailing list