aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRainer Hochecker <fernetmenta@online.de>2015-04-18 16:58:54 +0200
committerRainer Hochecker <fernetmenta@online.de>2015-04-18 17:00:01 +0200
commit781c91466b3070caabebd4b35ed862c062fd224d (patch)
tree52b41c5d955061ad94379903c2ab1b4cb7677e36
parent0a5a394898b02b1f31b3aa23b0d1a92e1fbb1ad3 (diff)
dvdplayer: proper flush when triggering resync after a stall
-rw-r--r--xbmc/cores/dvdplayer/DVDPlayer.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp
index 143ea0625c..23b07060ad 100644
--- a/xbmc/cores/dvdplayer/DVDPlayer.cpp
+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp
@@ -1782,7 +1782,7 @@ void CDVDPlayer::HandlePlaySpeed()
if (m_CurrentAudio.id >= 0 && m_CurrentAudio.inited &&
m_dvdPlayerAudio->IsStalled() && m_dvdPlayerAudio->GetLevel() == 0)
{
- CLog::Log(LOGDEBUG,"CDVDPlayer::HandlePlaySpeed - audio stream stalled, tiggering re-sync");
+ CLog::Log(LOGDEBUG,"CDVDPlayer::HandlePlaySpeed - audio stream stalled, triggering re-sync");
TriggerResync();
}
}
@@ -3610,6 +3610,13 @@ void CDVDPlayer::TriggerResync()
m_dvdPlayerVideo->FlushMessages();
m_dvdPlayerSubtitle->FlushMessages();
m_dvdPlayerTeletext->FlushMessages();
+
+ // make sure players are properly flushed, should put them in stalled state
+ CDVDMsgGeneralSynchronize* msg = new CDVDMsgGeneralSynchronize(1000, 0);
+ m_dvdPlayerAudio->SendMessage(msg->Acquire(), 1);
+ m_dvdPlayerVideo->SendMessage(msg->Acquire(), 1);
+ msg->Wait(&m_bStop, 0);
+ msg->Release();
}
// since we call ffmpeg functions to decode, this is being called in the same thread as ::Process() is