desktop-packages team mailing list archive
-
desktop-packages team
-
Mailing list archive
-
Message #139959
[Bug 1485522] Re: Volume obtained is 100% in multimedia sink for sounds from app
Okay, some more research done today, and I also talked to Juho @
Jolla/Sailfish about it, because they would probably suffer from the
same problem.
It's somewhat of a misdesign or broken thinking, I believe. In short, Qt
allows the app to set the volume of its sounds. This is an important
feature; it allows e g, if you have two sound effects, for them to be at
different volumes. Then it opens two streams and set the stream volume
accordingly.
Ubuntu phone / PulseAudio however comes from the other direction and sets stream volume based on role. The problem comes when the app then overrides this volume.
I believe we need to multiply both volumes somehow instead of just letting the app override it.
--
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to pulseaudio in Ubuntu.
https://bugs.launchpad.net/bugs/1485522
Title:
Volume obtained is 100% in multimedia sink for sounds from app
Status in Canonical System Image:
New
Status in pulseaudio package in Ubuntu:
Confirmed
Bug description:
I'm not sure 100% this is a bug but it is related to
https://bugs.launchpad.net/canonical-devices-system-image/+bug/1478506
When the "Marron in trouble" games launches a sound the multimedia
sink it's updated and when reading the volume it's always 100%.
I'ts not 100% for other applications using the multimedia role, like
the music app or other games/apps. The volume in that case is in sync
with the volume that was previously set for it.
This is the code from the indicator-sound where we get the 100%
volume.
var props_variant = yield _pconn.call ("org.PulseAudio.Ext.StreamRestore1.RestoreEntry",
sink_input_objp, "org.freedesktop.DBus.Properties", "Get",
new Variant ("(ss)", "org.PulseAudio.Ext.StreamRestore1.RestoreEntry", "Volume"),
null, DBusCallFlags.NONE, -1);
Variant tmp;
props_variant.get ("(v)", out tmp);
uint32 type = 0, volume = 0;
VariantIter iter = tmp.iterator ();
iter.next ("(uu)", &type, &volume);
I did a workaround branch in the indicator-sound that reads the volume
at initilaization for every role and stores any change When the sink
is updated I read the volume in it that is already stored instead of
reading the volume from pulse.
I'm not convinced of that, and would like to know why I get 100%
volume only for this particular game.
To manage notifications about this bug go to:
https://bugs.launchpad.net/canonical-devices-system-image/+bug/1485522/+subscriptions
References