[pulseaudio-discuss] [RFC] Per-client flat-volumes control
Alexander E. Patrakov
patrakov at gmail.com
Tue Aug 5 12:42:48 PDT 2014
06.08.2014 00:54, Arun Raghavan wrote:
> Hi folks,
> Alexander's already brought up the issue of websites that can set the volume on
> a stream programmatically, and either unwittingly or malicious set the system
> volume to 100% when using flat-volumes, and while I've been against having to
> deal with this on the PulseAudio side, I think we will have to after all.
>
> The practical part of this problem really is websites that set the stream
> volume to 1.0 as intialisation. There's nothing in the HTML5 spec that mandates
> this, but that doesn't seem to be stopping people from doing this. The Firefox
> folks, who are trying to use PA stream volumes are now also hitting this.
>
> I like how flat-volumes work on the desktop (and I know this is not a unanimous
> view), but pragmatically, for the website case, there does not seem to be a way
> to make this work. As a compromise, I propose a mechanism to allow streams to
> disable flat volumes for themselves. I'm attaching a patch that does this
> (which needs more thorough review by myself as well).
>
> Thoughts?
[please treat this e-mail as neutral thoughts, i.e. neither support nor
opposition, even though the text reads as opposition]
If your patch is applied, I think (I have not tested) that there will be
inconsistency in the volume controls displayed by the GUIs. I.e. the
desired position of some volume controls would be 100%, and of the
others it would be much less, and there is no real way for the user to
discern, except by listening.
I think that the real problem that needs to be solved is not only that
flat volumes are inapplicable to the web, but also that PulseAudio
doesn't provide any API for intra-application mixing. Please see my
earlier thoughts on it here (point 7):
http://lists.freedesktop.org/archives/pulseaudio-discuss/2014-February/019968.html
In other words: please add new API that would allow a browser to
implement a per-tab (flat or non-flat, as configured in daemon.conf)
visible volume control, with several substreams being mixed for each tab
by PulseAudio. The javascript inside the browser should be able to set,
invisibly for the user, tab-relative (and thus non-flat) volumes for
each substream.
Here is a test page for you:
http://www.kibagames.com/Game/Kiba_Kumba_Jungle_Chaos
--
Alexander E. Patrakov
More information about the pulseaudio-discuss
mailing list