From 1b0517efc5080a668540bfca7e5dedef525463e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Wo=C5=BAniak?= Date: Mon, 5 Oct 2015 22:01:50 +0200 Subject: [PATCH] moved the fix to include seeking via position --- src/libtomahawk/audio/AudioOutput.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/libtomahawk/audio/AudioOutput.cpp b/src/libtomahawk/audio/AudioOutput.cpp index d344ac1b6..c78bc86cf 100644 --- a/src/libtomahawk/audio/AudioOutput.cpp +++ b/src/libtomahawk/audio/AudioOutput.cpp @@ -427,21 +427,19 @@ AudioOutput::seek( qint64 milliseconds ) return; } + qint64 duration = AudioEngine::instance()->currentTrackTotalTime(); + // for some tracks, seeking to an end seems not to work correctly with libvlc + // (tracks enter a random and infinite loop) - this is a temporary fix for that + if (duration == milliseconds) + milliseconds -= 1; + if ( m_seekable ) { - - // tDebug() << Q_FUNC_INFO << "AudioOutput:: seeking" << milliseconds << "msec"; - - // for some tracks, seeking to an end seems not to work correctly with libvlc - // (tracks enter a random and infinite loop) - this is a temporary fix for that - if (milliseconds == libvlc_media_player_get_length(m_vlcPlayer) && milliseconds > 0) - milliseconds -= 1; libvlc_media_player_set_time( m_vlcPlayer, milliseconds ); setCurrentTime( milliseconds ); } else { - qint64 duration = AudioEngine::instance()->currentTrackTotalTime(); float position = float(float(milliseconds) / duration); libvlc_media_player_set_position(m_vlcPlayer, position); tDebug() << Q_FUNC_INFO << "AudioOutput:: seeking via position" << position << "pos";