xbmc-master: update to xbmc-master-14-297f4ad

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2014-05-03 13:39:11 +02:00
parent 3911756c6d
commit 7ef6583267
3 changed files with 2 additions and 213 deletions

View File

@ -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"

View File

@ -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"

View File

@ -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