aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRainer Hochecker <fernetmenta@online.de>2016-09-20 12:07:53 +0200
committerRainer Hochecker <fernetmenta@online.de>2016-09-20 12:07:53 +0200
commitd758cdb02043a07a4e9d65c1fbbce736c6932efe (patch)
tree6d9b197d66acd4c5cb3221adcc9268e93a09d266
parentdf146924354c8a471810ebbaeecaeaeb6b8b5516 (diff)
VideoPlayer: handle exceptional case where distance between keyframes is greater than demux queue
-rw-r--r--xbmc/cores/VideoPlayer/VideoPlayer.cpp12
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