mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
xbmc: add PR2593
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
44dd60c4cb
commit
09c5c6f662
91
packages/mediacenter/xbmc/patches/12.1.6/xbmc-990.12-PR2593.patch
vendored
Normal file
91
packages/mediacenter/xbmc/patches/12.1.6/xbmc-990.12-PR2593.patch
vendored
Normal file
@ -0,0 +1,91 @@
|
||||
From 3ce0c7a096d497d24d41bf5d908e62f92281f1da Mon Sep 17 00:00:00 2001
|
||||
From: popcornmix <popcornmix@gmail.com>
|
||||
Date: Thu, 11 Apr 2013 00:48:10 +0100
|
||||
Subject: [PATCH] [rbp] Fix elapsed time not updating near end of file
|
||||
|
||||
Currently, once demuxer has reached EOF, we send the EOF messages to audio/video players
|
||||
and set their inited/started flags to false. But if started is false we ignore any
|
||||
PLAYER_DISPLAYTIME coming back from players, which stops the elapsed time from updating.
|
||||
This can affect the final ~8 seconds of the file.
|
||||
|
||||
The fix delays changing these flags until audio/video players have signalled EOS.
|
||||
---
|
||||
xbmc/cores/omxplayer/OMXPlayer.cpp | 46 +++++++++++++++++++++-----------------
|
||||
1 file changed, 26 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/omxplayer/OMXPlayer.cpp b/xbmc/cores/omxplayer/OMXPlayer.cpp
|
||||
index 7de531b..419bb0e 100644
|
||||
--- a/xbmc/cores/omxplayer/OMXPlayer.cpp
|
||||
+++ b/xbmc/cores/omxplayer/OMXPlayer.cpp
|
||||
@@ -937,6 +937,7 @@ void COMXPlayer::Process()
|
||||
{
|
||||
bool bOmxWaitVideo = false;
|
||||
bool bOmxWaitAudio = false;
|
||||
+ bool bOmxSentEOFs = false;
|
||||
|
||||
if (!OpenInputStream())
|
||||
{
|
||||
@@ -1222,28 +1223,24 @@ void COMXPlayer::Process()
|
||||
}
|
||||
|
||||
// make sure we tell all players to finish it's data
|
||||
- if(m_CurrentAudio.inited)
|
||||
+ if (!bOmxSentEOFs)
|
||||
{
|
||||
- m_player_audio.SendMessage (new CDVDMsg(CDVDMsg::GENERAL_EOF));
|
||||
- bOmxWaitAudio = true;
|
||||
- }
|
||||
- if(m_CurrentVideo.inited)
|
||||
- {
|
||||
- m_player_video.SendMessage (new CDVDMsg(CDVDMsg::GENERAL_EOF));
|
||||
- bOmxWaitVideo = true;
|
||||
+ if(m_CurrentAudio.inited)
|
||||
+ {
|
||||
+ m_player_audio.SendMessage (new CDVDMsg(CDVDMsg::GENERAL_EOF));
|
||||
+ bOmxWaitAudio = true;
|
||||
+ }
|
||||
+ if(m_CurrentVideo.inited)
|
||||
+ {
|
||||
+ m_player_video.SendMessage (new CDVDMsg(CDVDMsg::GENERAL_EOF));
|
||||
+ bOmxWaitVideo = true;
|
||||
+ }
|
||||
+ if(m_CurrentSubtitle.inited)
|
||||
+ m_player_subtitle.SendMessage(new CDVDMsg(CDVDMsg::GENERAL_EOF));
|
||||
+ if(m_CurrentTeletext.inited)
|
||||
+ m_player_teletext.SendMessage(new CDVDMsg(CDVDMsg::GENERAL_EOF));
|
||||
+ bOmxSentEOFs = true;
|
||||
}
|
||||
- if(m_CurrentSubtitle.inited)
|
||||
- m_player_subtitle.SendMessage(new CDVDMsg(CDVDMsg::GENERAL_EOF));
|
||||
- if(m_CurrentTeletext.inited)
|
||||
- m_player_teletext.SendMessage(new CDVDMsg(CDVDMsg::GENERAL_EOF));
|
||||
- m_CurrentAudio.inited = false;
|
||||
- m_CurrentVideo.inited = false;
|
||||
- m_CurrentSubtitle.inited = false;
|
||||
- m_CurrentTeletext.inited = false;
|
||||
- m_CurrentAudio.started = false;
|
||||
- m_CurrentVideo.started = false;
|
||||
- m_CurrentSubtitle.started = false;
|
||||
- m_CurrentTeletext.started = false;
|
||||
|
||||
// if we are caching, start playing it again
|
||||
SetCaching(CACHESTATE_DONE);
|
||||
@@ -1271,6 +1268,15 @@ void COMXPlayer::Process()
|
||||
if (!m_pInputStream->IsEOF())
|
||||
CLog::Log(LOGINFO, "%s - eof reading from demuxer", __FUNCTION__);
|
||||
|
||||
+ m_CurrentAudio.inited = false;
|
||||
+ m_CurrentVideo.inited = false;
|
||||
+ m_CurrentSubtitle.inited = false;
|
||||
+ m_CurrentTeletext.inited = false;
|
||||
+ m_CurrentAudio.started = false;
|
||||
+ m_CurrentVideo.started = false;
|
||||
+ m_CurrentSubtitle.started = false;
|
||||
+ m_CurrentTeletext.started = false;
|
||||
+
|
||||
break;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.5
|
||||
|
Loading…
x
Reference in New Issue
Block a user