From: Takashi Iwai <tiwai@suse.de>
To: Oleksandr Andrushchenko <andr2000@gmail.com>
Cc: alsa-devel@alsa-project.org, Takashi Sakamoto <o-takashi@sakamocchi.jp>
Subject: Re: alsalib and snd_pcm_hw_params_set_rate_minmax
Date: Thu, 15 Mar 2018 14:23:04 +0100 [thread overview]
Message-ID: <s5ho9jp79s7.wl-tiwai@suse.de> (raw)
In-Reply-To: <9cf1073b-97ec-a3f5-a08a-5c54f5d92c4a@gmail.com>
On Thu, 15 Mar 2018 13:20:14 +0100,
Oleksandr Andrushchenko wrote:
>
> On 03/15/2018 01:59 PM, Takashi Sakamoto wrote:
> > 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.
> So, this effectively means that this is a one way road, if you need to
> change
> some parameter you'll need to start all over, so the whole configuration
> space remains consistent :(
Yes, that's the design. The only way to expand is to reset the whole,
space and reduce again to the given size.
> > If you can initialize whole the parameters, snd_pcm_hw_params_any() is
> > available for your purpose, then set min/max rate again.
> This is what I do now but...
> > But just for
> > one of the parameters, in my opinion, we need to open an internal
> > API; snd_pcm_hw_param_any()[1].
> IMO, this will lead to the false assumption that configuration is possible.
> For example, I set 4 channels and 44100, but then, after
> snd_pcm_hw_params_any,
> set 48000 and might assume that the configuration is still
> possible. But this may not
> be true: it is true for the configuration returned by snd_pcm_hw_param_any
> as we don't know about 4 channels yet. But might not be allowed if we
> want 4 channels
> and 48000 at the same time.
Right. At the point where snd_pcm_hw_params_any() is called, the
whole configuration gets reset. That's the reason I thought we may
need to pass all 5 parameters in the query protocol.
IOW, the query stuff won't be modal, it just tries to reduce the given
configuration space to the acceptable ranges.
Takashi
next prev parent reply other threads:[~2018-03-15 13:23 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-15 10:45 alsalib and snd_pcm_hw_params_set_rate_minmax Oleksandr Andrushchenko
2018-03-15 11:59 ` Takashi Sakamoto
2018-03-15 12:20 ` Oleksandr Andrushchenko
2018-03-15 12:45 ` Takashi Sakamoto
2018-03-15 13:15 ` Oleksandr Andrushchenko
2018-03-15 13:23 ` Takashi Iwai [this message]
2018-03-15 13:39 ` Oleksandr Andrushchenko
2018-03-15 20:29 ` Takashi Iwai
2018-03-16 10:17 ` Oleksandr Andrushchenko
2018-03-16 12:50 ` Konrad Rzeszutek Wilk
2018-03-16 12:54 ` Oleksandr Andrushchenko
2018-03-16 15:05 ` Takashi Iwai
2018-03-16 15:10 ` Oleksandr Andrushchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=s5ho9jp79s7.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=alsa-devel@alsa-project.org \
--cc=andr2000@gmail.com \
--cc=o-takashi@sakamocchi.jp \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox