Volume continuously reverting to 100%
#1
Rather than remembering the last volume level, XBMC seems to continuously revert to a volume level of 100% at startup and after the screensaver initiates. I would rather XBMC remember the volume level but, if that isn't possible, I would at least prefer to be able to set a level that wasn't 100% (which happens to be a really bad idea on my system). I have discovered that I can prevent the screensaver from resetting the volume to 100% by enabling "fixed" mode and "always keep audio device active" in audio settings, however, each restart is a very rude awakening of startup sounds and initial play of content. For what it's worth, I'm running a SteamOS version of XBMC from here.

So, in summary, I need a way to have volume level "remembered" or have a way to set the default volume level to some level much lower than 100%. Any suggestions or ideas?
Reply
#2
Debug Log
I suspect its steam mucking with pulse audio. Also which screensaver do you mean? Xbmc's or steam/gnome?
Reply
#3
The problem is most likely debian's insane default of pulseaudio to have flat-volumes set to yes. This will allow every application to raise the global volume when a stream volume is reset. xbmc's pulseaudio implementation remembers its very own stream volume and reset that to "NULL" when the device is reopened.

I'd also like to see the Debug Log together with:

pactl list sink-inputs
pactl list sinks

before and after that issues happens.

You can set flat-volume to no (which is the default on ubuntu) by editing the relevant daemon.conf
Code:
flat-volumes = no

See also here: https://wiki.archlinux.org/index.php/PulseAudio
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#4
i tried editing /etc/pulse/daemon.conf to include

Code:
flat-volumes = no

so far, no luck. xbmc still doesn't "remember" its volume setting. here is my log. unfortunately, i get a "command not found" for pactl (i am running plain steamos).
Reply
#5
Good, then you don't use pulseaudio at all - I still cannot see your Debug Log

Edit: Log was hidden in a little "here" link :-) - found it.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#6
Quote:15:23:02 T:140549585815296 DEBUG: Restored Stream value to 1.000000

This is what pulseaudio database is telling us on start, so the stream itself has had a volume of 1.0 last run. Remember we only restore _the_ stream - not the global audio volume.

Edit: Here is what the code does:
https://github.com/xbmc/xbmc/blob/Gotham...E.cpp#L650

Ask pulseaudio server for the stream volume and use that value to sync our internal volume (especially the volume bar) to it.

Edit2:
And here we start it with volume = NULL which means: Dear pulseaudio server please choose the volume that you think is right.

Code:
pa_stream_connect_playback(m_Stream, isDefaultDevice ? NULL : device.c_str(), sinkStruct.isHWDevice ? &buffer_attr : NULL, ((pa_stream_flags)(PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_AUTO_TIMING_UPDATE | PA_STREAM_ADJUST_LATENCY)), NULL, NULL) < 0
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#7
ouh and pastebin your daemon.conf
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply

Logout Mark Read Team Forum Stats Members Help
Volume continuously reverting to 100%0