diff options
author | Rainer Hochecker <fernetmenta@online.de> | 2016-09-20 12:07:53 +0200 |
---|---|---|
committer | Rainer Hochecker <fernetmenta@online.de> | 2016-09-20 12:07:53 +0200 |
commit | d758cdb02043a07a4e9d65c1fbbce736c6932efe (patch) | |
tree | 6d9b197d66acd4c5cb3221adcc9268e93a09d266 | |
parent | df146924354c8a471810ebbaeecaeaeb6b8b5516 (diff) |
VideoPlayer: handle exceptional case where distance between keyframes is greater than demux queue
-rw-r--r-- | xbmc/cores/VideoPlayer/VideoPlayer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/xbmc/cores/VideoPlayer/VideoPlayer.cpp b/xbmc/cores/VideoPlayer/VideoPlayer.cpp index f1d836fecc..cd64ac7059 100644 --- a/xbmc/cores/VideoPlayer/VideoPlayer.cpp +++ b/xbmc/cores/VideoPlayer/VideoPlayer.cpp @@ -2060,6 +2060,18 @@ void CVideoPlayer::HandlePlaySpeed() m_syncTimer.Set(3000); } + else + { + // exceptions for which stream players won't start properly + // 1. videoplayer has not detected a keyframe within lenght of demux buffers + if (m_CurrentAudio.id >= 0 && m_CurrentVideo.id >= 0 && + !m_VideoPlayerAudio->AcceptsData() && + m_VideoPlayerVideo->IsStalled()) + { + CLog::Log(LOGWARNING, "VideoPlayer::Sync - stream player video does not start, flushing buffers"); + FlushBuffers(false); + } + } } // handle ff/rw |