diff options
author | Rainer Hochecker <fernetmenta@online.de> | 2015-04-18 16:58:54 +0200 |
---|---|---|
committer | Rainer Hochecker <fernetmenta@online.de> | 2015-04-18 17:00:01 +0200 |
commit | 781c91466b3070caabebd4b35ed862c062fd224d (patch) | |
tree | 52b41c5d955061ad94379903c2ab1b4cb7677e36 | |
parent | 0a5a394898b02b1f31b3aa23b0d1a92e1fbb1ad3 (diff) |
dvdplayer: proper flush when triggering resync after a stall
-rw-r--r-- | xbmc/cores/dvdplayer/DVDPlayer.cpp | 9 |
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 |