[alsa-devel] alsalib and snd_pcm_hw_params_set_rate_minmax

Takashi Sakamoto o-takashi at sakamocchi.jp
Thu Mar 15 12:59:46 CET 2018


Hi,

On Mar 15 2018 19:45, Oleksandr Andrushchenko wrote:
> Is it possible for user-space to reduce configuration space
> with snd_pcm_hw_params_set_rate_minmax and then change it
> with another snd_pcm_hw_params_set_rate_minmax with values
> out of the reduced config?
> 
> For example, the initial min/max is 44100/48000 and I set 44100
> first, e.g.
> 
> snd_pcm_hw_params_set_rate_minmax(handle, hw_params, 44100, 0, 44100, 0)
> 
> and then want
> 
> snd_pcm_hw_params_set_rate_minmax(handle, hw_params, 48000, 0, 48000, 0)
> 
> Obviously, the last call fails as we have already a reduced
> space of [44100; 44100].
> 
> Is there a way I can still set the range to [48000; 48000]?
> 
> Thank you,
> Oleksandr
> 
> P.S. This is in context of work done for [1]
> 
> [1] https://www.spinics.net/lists/alsa-devel/msg75382.html

We can't. Once shrinking available interval of a parameter, we cannot
expand it again without initializing the parameter on memory object for
'struct snd_pcm_hw_params_t', in which actual layout is never disclosed
to user applications.

If you can initialize whole the parameters, snd_pcm_hw_params_any() is
available for your purpose, then set min/max rate again. But just for
one of the parameters, in my opinion, we need to open an internal API; 
snd_pcm_hw_param_any()[1].

[1] 
http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm_params.c;h=608a2324cb268f84d91f67c53d979521678f4edb;hb=HEAD#l107


Regards

Takashi Sakamoto


More information about the Alsa-devel mailing list