mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 13:16:41 +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