diff --git a/xbmc/AdvancedSettings.cpp b/xbmc/AdvancedSettings.cpp index d132e9d89b70e..744e9a763405b 100644 --- a/xbmc/AdvancedSettings.cpp +++ b/xbmc/AdvancedSettings.cpp @@ -84,8 +84,8 @@ void CAdvancedSettings::Initialize() m_videoPPFFmpegPostProc = "ha:128:7,va,dr"; m_videoDefaultPlayer = "dvdplayer"; m_videoDefaultDVDPlayer = "dvdplayer"; - m_videoIgnoreAtStart = 15; - m_videoIgnoreAtEnd = 5; + m_videoIgnoreSecondsAtStart = 3*60; + m_videoIgnorePercentAtEnd = 8.0f; m_videoPlayCountMinimumPercent = 90.0f; m_videoHighQualityScaling = SOFTWARE_UPSCALING_DISABLED; m_videoHighQualityScalingMethod = VS_SCALINGMETHOD_BICUBIC_SOFTWARE; @@ -381,8 +381,8 @@ bool CAdvancedSettings::Load() XMLUtils::GetString(pElement, "defaultdvdplayer", m_videoDefaultDVDPlayer); XMLUtils::GetBoolean(pElement, "fullscreenonmoviestart", m_fullScreenOnMovieStart); XMLUtils::GetFloat(pElement, "playcountminimumpercent", m_videoPlayCountMinimumPercent, 0.0f, 100.0f); - XMLUtils::GetInt(pElement, "ignoreatstart", m_videoIgnoreAtStart, 0, 900); - XMLUtils::GetInt(pElement, "ignoreatend", m_videoIgnoreAtEnd, 0, 900); + XMLUtils::GetInt(pElement, "ignoresecondsatstart", m_videoIgnoreSecondsAtStart, 0, 900); + XMLUtils::GetFloat(pElement, "ignorepercentatend", m_videoIgnorePercentAtEnd, 0, 100.0f); XMLUtils::GetInt(pElement, "smallstepbackseconds", m_videoSmallStepBackSeconds, 1, INT_MAX); XMLUtils::GetInt(pElement, "smallstepbacktries", m_videoSmallStepBackTries, 1, 10); diff --git a/xbmc/AdvancedSettings.h b/xbmc/AdvancedSettings.h index 019f7d9ffb5d3..08c9cbe1280d9 100644 --- a/xbmc/AdvancedSettings.h +++ b/xbmc/AdvancedSettings.h @@ -99,8 +99,8 @@ class CAdvancedSettings int m_musicPercentSeekBackwardBig; int m_musicResample; int m_videoBlackBarColour; - int m_videoIgnoreAtStart; - int m_videoIgnoreAtEnd; + int m_videoIgnoreSecondsAtStart; + float m_videoIgnorePercentAtEnd; CStdString m_audioHost; bool m_audioApplyDrc; diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp index 2db7ebc25fc11..94233bcd48fbb 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -4086,14 +4086,14 @@ void CApplication::UpdateFileState() m_progressTrackingVideoResumeBookmark.playerState = m_pPlayer->GetPlayerState(); m_progressTrackingVideoResumeBookmark.thumbNailImage.Empty(); - if (g_advancedSettings.m_videoIgnoreAtEnd > 0 && - GetTotalTime() - GetTime() < g_advancedSettings.m_videoIgnoreAtEnd) + if (g_advancedSettings.m_videoIgnorePercentAtEnd > 0 && + GetTotalTime() - GetTime() < 0.01f * g_advancedSettings.m_videoIgnorePercentAtEnd * GetTotalTime()) { // Delete the bookmark m_progressTrackingVideoResumeBookmark.timeInSeconds = -1.0f; } else - if (GetTime() > g_advancedSettings.m_videoIgnoreAtStart) + if (GetTime() > g_advancedSettings.m_videoIgnoreSecondsAtStart) { // Update the bookmark m_progressTrackingVideoResumeBookmark.timeInSeconds = GetTime(); @@ -4504,7 +4504,7 @@ bool CApplication::OnMessage(CGUIMessage& message) // In case playback ended due to user eg. skipping over the end, clear // our resume bookmark here - if (message.GetMessage() == GUI_MSG_PLAYBACK_ENDED && m_progressTrackingPlayCountUpdate && g_advancedSettings.m_videoIgnoreAtEnd > 0) + if (message.GetMessage() == GUI_MSG_PLAYBACK_ENDED && m_progressTrackingPlayCountUpdate && g_advancedSettings.m_videoIgnorePercentAtEnd > 0) { // Delete the bookmark m_progressTrackingVideoResumeBookmark.timeInSeconds = -1.0f;