I've researched why the "Dinosaur" game always have sound effects at 100% volume.
Starting with the pa_stream_connect_playback API, the documentation says: "It is strongly recommended to pass NULL in both dev and volume and to set neither PA_STREAM_START_MUTED nor PA_STREAM_START_UNMUTED – unless these options are directly dependent on user input or configuration. If you follow this rule then the sound server will have the full flexibility to choose the device, volume and mute status automatically, based on server-side policies, heuristics and stored information from previous uses. " Yet, in QPulseAudioOutput::open ( package: qtmultimedia-opensource-src, file: src/plugins/pulseaudio/qaudiooutput_pulse.cpp ), the volume is always set, despite PA recommending otherwise. In addition, the QPulseAudioOutput constructor defaults the volume to 1.0 (maximum). I think the QPulseAudioOutput component should default to not set the volume at all, i e, leaving "NULL" as the volume in the call to pa_stream_connect_playback. -- You received this bug notification because you are a member of Ubuntu Touch seeded 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 -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp