Version: current SVN (using KDE KDE 3.5.4) Installed from: Gentoo Packages Compiler: gcc 4.1.1 OS: Linux For current SVNversion - unpausing makes volume level much higher. Probably, the bug was introduced approximately when Fader classes were added to xine-engine.cpp.
After removing fading at pause (see #127316), the bug still exists at stop/play scenario.
Created attachment 17854 [details] Okay... Got problems with getting SVN to compile, so couldn't test this myself... It might fix it. Or then it doesn't. I don't know. Feel free to test, and please let me know if I guessed right.
Tuomas, I have got the error: xine-engine.cpp:521: error: 'vol' was not declared in this scope
Created attachment 17856 [details] Try #2... One shouldn't ever trust that his code compiles without trying. Now I do it again, hopefully with better luck.
Tuomas, It seems like last patch is more lucky :-) A volume level doesn't jump now. Thanks!
SVN commit 586904 by markey: Fix regression: Fadeout would increase the original volume level. Thanks Andrew and Tuomas for figuring this out :) BUG: 134274 M +2 -1 xine-engine.cpp --- trunk/extragear/multimedia/amarok/src/engine/xine/xine-engine.cpp #586903:586904 @@ -489,6 +489,7 @@ m_fadeOutRunning = !m_fadeOutRunning; const bool isPlaying = m_stream && ( xine_get_status( m_stream ) == XINE_STATUS_PLAY ); + const float originalVol = Engine::Base::makeVolumeLogarithmic( m_volume ) * m_preamp; // NOTE The fadeout gets stuck when the EQ is active, so we skip it then if( m_xfadeLength > 0 && !m_equalizerEnabled && isPlaying ) @@ -518,7 +519,7 @@ } } if( m_fadeOutRunning ) - xine_set_param( m_stream, XINE_PARAM_AUDIO_AMP_LEVEL, (uint)(m_volume * m_preamp) ); + xine_set_param( m_stream, XINE_PARAM_AUDIO_AMP_LEVEL, (uint) originalVol ); m_fadeOutRunning = !m_fadeOutRunning; }