mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
xbmc-master: update to xbmc-master-14-297f4ad
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
3911756c6d
commit
7ef6583267
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc-master-theme-Confluence"
|
||||
PKG_VERSION="14-7bffdd1"
|
||||
PKG_VERSION="14-297f4ad"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="xbmc-master"
|
||||
PKG_VERSION="14-7bffdd1"
|
||||
PKG_VERSION="14-297f4ad"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -1497,131 +1497,6 @@ index 59c7f09..65dea76 100644
|
||||
1.9.1
|
||||
|
||||
|
||||
From 3a57088506df57b4a5c63cc58145e4fc8750d752 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Mon, 24 Dec 2012 16:02:42 +0100
|
||||
Subject: [PATCH 12/30] pvr: increase changes counter of stream on stream
|
||||
change, cosmetics after dd307930d39d92f145a01a16600cd00e01ec39be
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxPVRClient.cpp | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxPVRClient.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxPVRClient.cpp
|
||||
index 6c8e6db..95cc18f 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxPVRClient.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxPVRClient.cpp
|
||||
@@ -328,9 +328,7 @@ void CDVDDemuxPVRClient::RequestStreams()
|
||||
if (stm)
|
||||
{
|
||||
st = dynamic_cast<CDemuxStreamAudioPVRClient*>(stm);
|
||||
- if (!st
|
||||
- || (st->codec != (AVCodecID)props.stream[i].iCodecId)
|
||||
- || (st->iChannels != props.stream[i].iChannels))
|
||||
+ if (!st || (st->codec != (AVCodecID)props.stream[i].iCodecId))
|
||||
DisposeStream(i);
|
||||
}
|
||||
if (!m_streams[i])
|
||||
@@ -347,6 +345,7 @@ void CDVDDemuxPVRClient::RequestStreams()
|
||||
st->iBitsPerSample = props.stream[i].iBitsPerSample;
|
||||
m_streams[i] = st;
|
||||
st->m_parser_split = true;
|
||||
+ st->changes++;
|
||||
}
|
||||
else if (props.stream[i].iCodecType == XBMC_CODEC_TYPE_VIDEO)
|
||||
{
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 84205eccef6aee0a03cb480a49cd0c805906bef0 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Fri, 14 Dec 2012 14:19:15 +0100
|
||||
Subject: [PATCH 13/30] pvr: do not show selection dialog for a single menu
|
||||
hook
|
||||
|
||||
---
|
||||
xbmc/pvr/addons/PVRClients.cpp | 9 ++++++---
|
||||
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/xbmc/pvr/addons/PVRClients.cpp b/xbmc/pvr/addons/PVRClients.cpp
|
||||
index 14c9cde..57b18a5 100644
|
||||
--- a/xbmc/pvr/addons/PVRClients.cpp
|
||||
+++ b/xbmc/pvr/addons/PVRClients.cpp
|
||||
@@ -733,6 +733,7 @@ void CPVRClients::ProcessMenuHooks(int iClientID, PVR_MENUHOOK_CAT cat, const CF
|
||||
{
|
||||
hooks = client->GetMenuHooks();
|
||||
std::vector<int> hookIDs;
|
||||
+ int selection = 0;
|
||||
|
||||
CGUIDialogSelect* pDialog = (CGUIDialogSelect*)g_windowManager.GetWindow(WINDOW_DIALOG_SELECT);
|
||||
pDialog->Reset();
|
||||
@@ -743,9 +744,11 @@ void CPVRClients::ProcessMenuHooks(int iClientID, PVR_MENUHOOK_CAT cat, const CF
|
||||
pDialog->Add(client->GetString(hooks->at(i).iLocalizedStringId));
|
||||
hookIDs.push_back(i);
|
||||
}
|
||||
- pDialog->DoModal();
|
||||
-
|
||||
- int selection = pDialog->GetSelectedLabel();
|
||||
+ if (hookIDs.size() > 1)
|
||||
+ {
|
||||
+ pDialog->DoModal();
|
||||
+ selection = pDialog->GetSelectedLabel();
|
||||
+ }
|
||||
if (selection >= 0)
|
||||
client->CallMenuHook(hooks->at(hookIDs.at(selection)), item);
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From 1d301eec900759c716f7b92862530b12c4ecb9ed Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Sun, 24 Mar 2013 16:04:48 +0100
|
||||
Subject: [PATCH 14/30] linux: use CLOCK_MONOTONIC_RAW as this is not subject
|
||||
to NTP
|
||||
|
||||
---
|
||||
xbmc/threads/SystemClock.cpp | 4 ++++
|
||||
xbmc/utils/TimeUtils.cpp | 4 ++++
|
||||
2 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/xbmc/threads/SystemClock.cpp b/xbmc/threads/SystemClock.cpp
|
||||
index 657a154..e7580ba 100644
|
||||
--- a/xbmc/threads/SystemClock.cpp
|
||||
+++ b/xbmc/threads/SystemClock.cpp
|
||||
@@ -43,7 +43,11 @@ namespace XbmcThreads
|
||||
now_time = (uint64_t)timeGetTime();
|
||||
#else
|
||||
struct timespec ts = {};
|
||||
+#ifdef CLOCK_MONOTONIC_RAW
|
||||
+ clock_gettime(CLOCK_MONOTONIC_RAW, &ts);
|
||||
+#else
|
||||
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||
+#endif // CLOCK_MONOTONIC_RAW
|
||||
now_time = (ts.tv_sec * 1000) + (ts.tv_nsec / 1000000);
|
||||
#endif
|
||||
if (!start_time_set)
|
||||
diff --git a/xbmc/utils/TimeUtils.cpp b/xbmc/utils/TimeUtils.cpp
|
||||
index c06b8c5..7eb953d 100644
|
||||
--- a/xbmc/utils/TimeUtils.cpp
|
||||
+++ b/xbmc/utils/TimeUtils.cpp
|
||||
@@ -43,7 +43,11 @@ int64_t CurrentHostCounter(void)
|
||||
return( (int64_t)PerformanceCount.QuadPart );
|
||||
#else
|
||||
struct timespec now;
|
||||
+#ifdef CLOCK_MONOTONIC_RAW
|
||||
+ clock_gettime(CLOCK_MONOTONIC_RAW, &now);
|
||||
+#else
|
||||
clock_gettime(CLOCK_MONOTONIC, &now);
|
||||
+#endif // CLOCK_MONOTONIC_RAW
|
||||
return( ((int64_t)now.tv_sec * 1000000000L) + now.tv_nsec );
|
||||
#endif
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From d98d7e1ebdb7edfb9bd646019def36e88f7fef40 Mon Sep 17 00:00:00 2001
|
||||
From: xbmc <fernetmenta@online.de>
|
||||
Date: Thu, 28 Mar 2013 15:18:53 +0100
|
||||
@ -3563,89 +3438,3 @@ index 0287e73..6904cb9 100644
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
||||
From e2648a3ffcdb9a8eb954923f2993ae3127197b64 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Fri, 2 May 2014 07:37:26 +0200
|
||||
Subject: [PATCH 30/30] VDPAU: improve error handling
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 15 +++++++++++++--
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h | 1 +
|
||||
2 files changed, 14 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
|
||||
index 485c5d3..671dcc3 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
|
||||
@@ -933,6 +933,7 @@ bool CDecoder::ConfigVDPAU(AVCodecContext* avctx, int ref_frames)
|
||||
|
||||
m_inMsgEvent.Reset();
|
||||
m_vdpauConfigured = true;
|
||||
+ m_ErrorCount = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1051,7 +1052,9 @@ int CDecoder::Render(struct AVCodecContext *s, struct AVFrame *src,
|
||||
vdp->m_bufferStats.Get(decoded, processed, rend);
|
||||
vdp_st = vdp->m_vdpauConfig.context->GetProcs().vdp_decoder_render(vdp->m_vdpauConfig.vdpDecoder,
|
||||
surf, info, buffers_used, buffers);
|
||||
- vdp->CheckStatus(vdp_st, __LINE__);
|
||||
+ if (vdp->CheckStatus(vdp_st, __LINE__))
|
||||
+ return -1;
|
||||
+
|
||||
uint64_t diff = CurrentHostCounter() - startTime;
|
||||
if (diff*1000/CurrentHostFrequency() > 30)
|
||||
CLog::Log(LOGDEBUG, "CVDPAU::DrawSlice - VdpDecoderRender long decoding: %d ms, dec: %d, proc: %d, rend: %d", (int)((diff*1000)/CurrentHostFrequency()), decoded, processed, rend);
|
||||
@@ -1238,6 +1241,8 @@ bool CDecoder::CheckStatus(VdpStatus vdp_st, int line)
|
||||
{
|
||||
CLog::Log(LOGERROR, " (VDPAU) Error: %s(%d) at %s:%d\n", m_vdpauConfig.context->GetProcs().vdp_get_error_string(vdp_st), vdp_st, __FILE__, line);
|
||||
|
||||
+ m_ErrorCount++;
|
||||
+
|
||||
if(m_DisplayState == VDPAU_OPEN)
|
||||
{
|
||||
if (vdp_st == VDP_STATUS_DISPLAY_PREEMPTED)
|
||||
@@ -1245,12 +1250,13 @@ bool CDecoder::CheckStatus(VdpStatus vdp_st, int line)
|
||||
m_DisplayEvent.Reset();
|
||||
m_DisplayState = VDPAU_LOST;
|
||||
}
|
||||
- else
|
||||
+ else if (m_ErrorCount > 2)
|
||||
m_DisplayState = VDPAU_ERROR;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
+ m_ErrorCount = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2925,6 +2931,11 @@ bool COutput::Init()
|
||||
bool COutput::Uninit()
|
||||
{
|
||||
m_mixer.Dispose();
|
||||
+ glFlush();
|
||||
+ while(ProcessSyncPicture())
|
||||
+ {
|
||||
+ Sleep(10);
|
||||
+ }
|
||||
GLUnmapSurfaces();
|
||||
ReleaseBufferPool();
|
||||
DestroyGlxContext();
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
|
||||
index 18bb05d..4d046c1 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.h
|
||||
@@ -608,6 +608,7 @@ class CDecoder
|
||||
} m_DisplayState;
|
||||
CCriticalSection m_DecoderSection;
|
||||
CEvent m_DisplayEvent;
|
||||
+ int m_ErrorCount;
|
||||
|
||||
ThreadIdentifier m_decoderThread;
|
||||
bool m_vdpauConfigured;
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user