All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Henningsson <david.henningsson@canonical.com>
To: Arun Raghavan <arun.raghavan@collabora.co.uk>
Cc: Takashi Iwai <tiwai@suse.de>,
	alsa-devel@alsa-project.org,
	pulseaudio-discuss@lists.freedesktop.org,
	Jaroslav Kysela <perex@perex.cz>
Subject: Re: [alsa-devel] PulseAudio and softvol
Date: Wed, 26 Jun 2013 10:35:09 +0200	[thread overview]
Message-ID: <51CAA7BD.6060506@canonical.com> (raw)
In-Reply-To: <1372229971.4981.21.camel@localhost>

On 06/26/2013 08:59 AM, Arun Raghavan wrote:
> On Thu, 2013-05-16 at 08:31 +0200, David Henningsson wrote:
>> On 05/15/2013 06:28 PM, Takashi Iwai wrote:
> [...]
>>> Yes, but the invocation of PCM softvol isn't guaranteed to be first
>>> before the reference to the already existing user ctl element.
>>> snd_mixer_open() can be called before that.
>>
>> So this is a transient problem, right? As soon as the first PCM is
>> opened, the TLV would be corrected, and then stay corrected for all
>> times to come.
>>
>> And looking at the current PulseAudio code, it does open the pcm device
>> before it opens the mixer/ctl device.
>> So, if this isn't possible to solve in a better way, maybe we need to be
>> pragmatic about it - PulseAudio is the only application we know that
>> would care, and it opens the pcm device first. So in practice, it looks
>> like the TLV approach would work.
>>
> [...]
>>> The very reason we'd like to filter out the mixer control created by
>>> softvol is that this mixer element confuses PA as if it actually
>>> changes the volume (e.g. "PCM") although PA ignores the softvol.  If
>
> Actually, we don't currently ignore softvol. I guess we could add the
> no-softvol flag once we're able to make sure we don't have any softvol
> controls.

Correct.

>>> user creates PCM volume in alsaloop in a different fashion as PA
>>> expected, the similar problem may happen.  How can we detect this
>>> logically...?  In other words, how can PA adjust the mixer elements
>>> for alsaloop properly?
>>
>> So if alsaloop is run, only once, that could cause a control to be added
>> for all future, due to alsactl saving and restoring it?
>>
>> If so, that looks like a problem with alsaloop. If it adds controls, it
>> should also remove them.
>>
>> If no, I don't think we need to worry. Alsaloop is probably mostly used
>> on non-PA systems (as PA has module-loopback which does the same thing).
>
> Seems this thread died out. I didn't quite understand the
> alsaloop/alsactl-specific concerns, tbh. What do we need to do to take
> this forwards?

It was suggested that softvol controls would store this information in 
TLV, which leads to a transient problem on upgrading, but nobody 
suggested anything better.

The transient problem is caused by alsactl loading the control from 
asound.state, which contains the old TLV information. But as soon as a 
PCM stream is opened, this will be corrected, AFAIU, and then the 
correct TLV information will be stored in asound.state at next reboot.

So I'm guessing that patches are welcome for that solution (in 
combination with a CTL_OPEN_NO_SOFTVOL flag), and nobody volunteered yet 
to implement it.


-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic

  reply	other threads:[~2013-06-26  8:35 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-15  9:55 PulseAudio and softvol Arun Raghavan
2013-05-15 10:26 ` Jaroslav Kysela
2013-05-15 10:48   ` Takashi Iwai
2013-05-15 10:53     ` Jaroslav Kysela
2013-05-15 10:56       ` Takashi Iwai
2013-05-15 11:03       ` David Henningsson
2013-05-15 11:22         ` Jaroslav Kysela
2013-05-15 11:33           ` David Henningsson
2013-05-15 12:44             ` Takashi Iwai
2013-05-15 12:42           ` Takashi Iwai
2013-05-15 12:47             ` David Henningsson
2013-05-15 12:49               ` Takashi Iwai
2013-05-15 12:52               ` Jaroslav Kysela
2013-05-15 13:05                 ` Takashi Iwai
2013-05-15 13:12                   ` Jaroslav Kysela
2013-05-15 13:26                     ` Takashi Iwai
2013-05-15 14:55                       ` Jaroslav Kysela
2013-05-15 15:06                         ` Takashi Iwai
2013-05-15 15:25                           ` Jaroslav Kysela
2013-05-15 16:28                             ` Takashi Iwai
2013-05-16  6:31                               ` David Henningsson
2013-05-16 10:58                                 ` Jaroslav Kysela
2013-06-26  6:59                                 ` [alsa-devel] " Arun Raghavan
2013-06-26  8:35                                   ` David Henningsson [this message]
2013-05-15 13:01   ` Arun Raghavan
2013-05-15 16:34 ` [pulseaudio-discuss] " Raymond Yau

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=51CAA7BD.6060506@canonical.com \
    --to=david.henningsson@canonical.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=arun.raghavan@collabora.co.uk \
    --cc=perex@perex.cz \
    --cc=pulseaudio-discuss@lists.freedesktop.org \
    --cc=tiwai@suse.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.