mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
xbmc: add upstream patches
Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
parent
003e502a85
commit
98044fa74f
322
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.14-PR2700.patch
vendored
Normal file
322
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.14-PR2700.patch
vendored
Normal file
@ -0,0 +1,322 @@
|
||||
From 85891c135b848d8f11a5410d867f67e0515d3d0b Mon Sep 17 00:00:00 2001
|
||||
From: Joakim Plate <elupus@ecce.se>
|
||||
Date: Sun, 17 Mar 2013 19:04:52 +0100
|
||||
Subject: [PATCH 1/3] dvdplayer: move CanSeek/CanPause to seekable interface
|
||||
|
||||
---
|
||||
.../dvdplayer/DVDInputStreams/DVDInputStream.h | 8 ++++++++
|
||||
.../DVDInputStreams/DVDInputStreamPVRManager.h | 1 +
|
||||
xbmc/cores/dvdplayer/DVDPlayer.cpp | 22 +++++++++++-----------
|
||||
3 files changed, 20 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h
|
||||
index b3b7ae3..a5ee3ae 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h
|
||||
@@ -122,6 +122,14 @@ class CDVDInputStream
|
||||
virtual double GetTimeStampCorrection() = 0;
|
||||
};
|
||||
|
||||
+ class ISeekable
|
||||
+ {
|
||||
+ public:
|
||||
+ virtual ~ISeekable() {};
|
||||
+ virtual bool CanSeek() = 0;
|
||||
+ virtual bool CanPause() = 0;
|
||||
+ };
|
||||
+
|
||||
enum ENextStream
|
||||
{
|
||||
NEXTSTREAM_NONE,
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h
|
||||
index 79389a4..89f05a7 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.h
|
||||
@@ -39,6 +39,7 @@ class CDVDInputStreamPVRManager
|
||||
: public CDVDInputStream
|
||||
, public CDVDInputStream::IChannel
|
||||
, public CDVDInputStream::IDisplayTime
|
||||
+ , public CDVDInputStream::ISeekable
|
||||
{
|
||||
public:
|
||||
CDVDInputStreamPVRManager(IDVDPlayer* pPlayer);
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp
|
||||
index e5a1e71..5baf57a 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDPlayer.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp
|
||||
@@ -3833,6 +3833,9 @@ void CDVDPlayer::UpdatePlayState(double timeout)
|
||||
state.time_src = ETIMESOURCE_CLOCK;
|
||||
}
|
||||
|
||||
+ state.canpause = true;
|
||||
+ state.canseek = true;
|
||||
+
|
||||
if(m_pInputStream)
|
||||
{
|
||||
// override from input stream if needed
|
||||
@@ -3861,16 +3864,10 @@ void CDVDPlayer::UpdatePlayState(double timeout)
|
||||
}
|
||||
}
|
||||
|
||||
- if (m_pInputStream->IsStreamType(DVDSTREAM_TYPE_PVRMANAGER))
|
||||
- {
|
||||
- CDVDInputStreamPVRManager* pvrinputstream = static_cast<CDVDInputStreamPVRManager*>(m_pInputStream);
|
||||
- state.canpause = pvrinputstream->CanPause();
|
||||
- state.canseek = pvrinputstream->CanSeek();
|
||||
- }
|
||||
- else
|
||||
+ if (CDVDInputStream::ISeekable* ptr = dynamic_cast<CDVDInputStream::ISeekable*>(m_pInputStream))
|
||||
{
|
||||
- state.canseek = state.time_total > 0 ? true : false;
|
||||
- state.canpause = true;
|
||||
+ state.canpause = ptr->CanPause();
|
||||
+ state.canseek = ptr->CanSeek();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3880,10 +3877,13 @@ void CDVDPlayer::UpdatePlayState(double timeout)
|
||||
state.time_total = m_Edl.RemoveCutTime(llrint(state.time_total));
|
||||
}
|
||||
|
||||
+ if(state.time_total <= 0)
|
||||
+ state.canseek = false;
|
||||
+
|
||||
state.player_state = "";
|
||||
- if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD))
|
||||
+ if(CDVDInputStreamNavigator* ptr = dynamic_cast<CDVDInputStreamNavigator*>(m_pInputStream))
|
||||
{
|
||||
- if(!((CDVDInputStreamNavigator*)m_pInputStream)->GetNavigatorState(state.player_state))
|
||||
+ if(!ptr->GetNavigatorState(state.player_state))
|
||||
state.player_state = "";
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.6
|
||||
|
||||
|
||||
From c817ed00d875174b6789621aba4dc15123c4f3bd Mon Sep 17 00:00:00 2001
|
||||
From: Joakim Plate <elupus@ecce.se>
|
||||
Date: Sun, 17 Mar 2013 19:15:13 +0100
|
||||
Subject: [PATCH 2/3] dvdplayer: disable seeking and pause for udp/rtp and seek
|
||||
for tcp
|
||||
|
||||
---
|
||||
.../dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.cpp | 17 +++++++++++++++++
|
||||
.../dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.h | 9 ++++++++-
|
||||
2 files changed, 25 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.cpp
|
||||
index 72ea5f8..fb5001a 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.cpp
|
||||
@@ -47,7 +47,24 @@ bool CDVDInputStreamFFmpeg::Open(const char* strFile, const std::string& content
|
||||
if (!CDVDInputStream::Open(strFile, content))
|
||||
return false;
|
||||
|
||||
+ m_can_pause = true;
|
||||
+ m_can_seek = true;
|
||||
+
|
||||
+ if(strnicmp(strFile, "udp://", 6) == 0
|
||||
+ || strnicmp(strFile, "rtp://", 6) == 0)
|
||||
+ {
|
||||
+ m_can_pause = false;
|
||||
+ m_can_seek = false;
|
||||
+ }
|
||||
+
|
||||
+ if(strnicmp(strFile, "tcp://", 6) == 0)
|
||||
+ {
|
||||
+ m_can_pause = true;
|
||||
+ m_can_seek = false;
|
||||
+ }
|
||||
+
|
||||
m_aborted = false;
|
||||
+
|
||||
return true;
|
||||
}
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.h
|
||||
index 6149233..cf80e8f 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFFmpeg.h
|
||||
@@ -22,7 +22,9 @@
|
||||
|
||||
#include "DVDInputStream.h"
|
||||
|
||||
-class CDVDInputStreamFFmpeg : public CDVDInputStream
|
||||
+class CDVDInputStreamFFmpeg
|
||||
+ : public CDVDInputStream
|
||||
+ , public CDVDInputStream::ISeekable
|
||||
{
|
||||
public:
|
||||
CDVDInputStreamFFmpeg();
|
||||
@@ -38,6 +40,11 @@ class CDVDInputStreamFFmpeg : public CDVDInputStream
|
||||
virtual void Abort() { m_aborted = true; }
|
||||
bool Aborted() { return m_aborted; }
|
||||
|
||||
+ bool CanSeek() { return m_can_seek; }
|
||||
+ bool CanPause() { return m_can_pause; }
|
||||
+
|
||||
protected:
|
||||
bool m_aborted;
|
||||
+ bool m_can_pause;
|
||||
+ bool m_can_seek;
|
||||
};
|
||||
--
|
||||
1.8.1.6
|
||||
|
||||
|
||||
From 20562d6450d481967833de7895cd27352a4fdea1 Mon Sep 17 00:00:00 2001
|
||||
From: Wolfgang Haupt <w.haupt@at-visions.com>
|
||||
Date: Tue, 7 May 2013 09:43:03 +0200
|
||||
Subject: [PATCH 3/3] dvdplayer: move navigator state into IMenus
|
||||
|
||||
---
|
||||
.../dvdplayer/DVDInputStreams/DVDInputStream.h | 2 ++
|
||||
.../DVDInputStreams/DVDInputStreamBluray.h | 2 ++
|
||||
.../DVDInputStreams/DVDInputStreamNavigator.cpp | 4 +--
|
||||
.../DVDInputStreams/DVDInputStreamNavigator.h | 4 +--
|
||||
xbmc/cores/dvdplayer/DVDPlayer.cpp | 38 ++++++++++------------
|
||||
5 files changed, 25 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h
|
||||
index a5ee3ae..76414b2 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStream.h
|
||||
@@ -120,6 +120,8 @@ class CDVDInputStream
|
||||
virtual bool OnMouseClick(const CPoint &point) = 0;
|
||||
virtual bool IsInMenu() = 0;
|
||||
virtual double GetTimeStampCorrection() = 0;
|
||||
+ virtual bool GetState(std::string &xmlstate) { return false; }
|
||||
+ virtual bool SetState(const std::string &xmlstate) { return false; }
|
||||
};
|
||||
|
||||
class ISeekable
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h
|
||||
index 6897d0f..a7d8f6b 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h
|
||||
@@ -81,6 +81,8 @@ class CDVDInputStreamBluray
|
||||
virtual bool OnMouseMove(const CPoint &point) { return false; }
|
||||
virtual bool OnMouseClick(const CPoint &point) { return false; }
|
||||
virtual double GetTimeStampCorrection() { return 0.0; }
|
||||
+ virtual bool GetState(std::string &xmlstate) { return false; }
|
||||
+ virtual bool SetState(const std::string &xmlstate) { return false; }
|
||||
|
||||
void UserInput(bd_vk_key_e vk);
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
|
||||
index 9cd8cf9..102b862 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.cpp
|
||||
@@ -1144,7 +1144,7 @@ bool CDVDInputStreamNavigator::IsSubtitleStreamEnabled()
|
||||
return false;
|
||||
}
|
||||
|
||||
-bool CDVDInputStreamNavigator::GetNavigatorState(std::string &xmlstate)
|
||||
+bool CDVDInputStreamNavigator::GetState(std::string &xmlstate)
|
||||
{
|
||||
if( !m_dvdnav )
|
||||
return false;
|
||||
@@ -1165,7 +1165,7 @@ bool CDVDInputStreamNavigator::GetNavigatorState(std::string &xmlstate)
|
||||
return true;
|
||||
}
|
||||
|
||||
-bool CDVDInputStreamNavigator::SetNavigatorState(std::string &xmlstate)
|
||||
+bool CDVDInputStreamNavigator::SetState(const std::string &xmlstate)
|
||||
{
|
||||
if( !m_dvdnav )
|
||||
return false;
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h
|
||||
index 0c16642..45b2632 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h
|
||||
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamNavigator.h
|
||||
@@ -108,8 +108,8 @@ class CDVDInputStreamNavigator
|
||||
int GetAudioStreamCount();
|
||||
bool SetActiveAudioStream(int iId);
|
||||
|
||||
- bool GetNavigatorState(std::string &xmlstate);
|
||||
- bool SetNavigatorState(std::string &xmlstate);
|
||||
+ bool GetState(std::string &xmlstate);
|
||||
+ bool SetState(const std::string &xmlstate);
|
||||
|
||||
int GetChapter() { return m_iPart; } // the current part in the current title
|
||||
int GetChapterCount() { return m_iPartCount; } // the number of parts in the current title
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp
|
||||
index 5baf57a..cb8a62b 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDPlayer.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp
|
||||
@@ -936,16 +936,15 @@ void CDVDPlayer::Process()
|
||||
return;
|
||||
}
|
||||
|
||||
- if(m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD))
|
||||
+ if (CDVDInputStream::IMenus* ptr = dynamic_cast<CDVDInputStream::IMenus*>(m_pInputStream))
|
||||
{
|
||||
- CLog::Log(LOGNOTICE, "DVDPlayer: playing a dvd with menu's");
|
||||
+ CLog::Log(LOGNOTICE, "DVDPlayer: playing a file with menu's");
|
||||
m_PlayerOptions.starttime = 0;
|
||||
|
||||
-
|
||||
if(m_PlayerOptions.state.size() > 0)
|
||||
- ((CDVDInputStreamNavigator*)m_pInputStream)->SetNavigatorState(m_PlayerOptions.state);
|
||||
- else
|
||||
- ((CDVDInputStreamNavigator*)m_pInputStream)->EnableSubtitleStream(g_settings.m_currentVideoSettings.m_SubtitleOn);
|
||||
+ ptr->SetState(m_PlayerOptions.state);
|
||||
+ else if(CDVDInputStreamNavigator* nav = dynamic_cast<CDVDInputStreamNavigator*>(m_pInputStream))
|
||||
+ nav->EnableSubtitleStream(g_settings.m_currentVideoSettings.m_SubtitleOn);
|
||||
|
||||
g_settings.m_currentVideoSettings.m_SubtitleCached = true;
|
||||
}
|
||||
@@ -2147,13 +2146,14 @@ void CDVDPlayer::HandleMessages()
|
||||
|
||||
CDVDMsgPlayerSetState* pMsgPlayerSetState = (CDVDMsgPlayerSetState*)pMsg;
|
||||
|
||||
- if (m_pInputStream && m_pInputStream->IsStreamType(DVDSTREAM_TYPE_DVD))
|
||||
+ if (CDVDInputStream::IMenus* ptr = dynamic_cast<CDVDInputStream::IMenus*>(m_pInputStream))
|
||||
{
|
||||
- std::string s = pMsgPlayerSetState->GetState();
|
||||
- ((CDVDInputStreamNavigator*)m_pInputStream)->SetNavigatorState(s);
|
||||
- m_dvd.state = DVDSTATE_NORMAL;
|
||||
- m_dvd.iDVDStillStartTime = 0;
|
||||
- m_dvd.iDVDStillTime = 0;
|
||||
+ if(ptr->SetState(pMsgPlayerSetState->GetState()))
|
||||
+ {
|
||||
+ m_dvd.state = DVDSTATE_NORMAL;
|
||||
+ m_dvd.iDVDStillStartTime = 0;
|
||||
+ m_dvd.iDVDStillTime = 0;
|
||||
+ }
|
||||
}
|
||||
|
||||
g_infoManager.SetDisplayAfterSeek();
|
||||
@@ -3853,9 +3853,12 @@ void CDVDPlayer::UpdatePlayState(double timeout)
|
||||
state.time_total = pDisplayTime->GetTotalTime();
|
||||
state.time_src = ETIMESOURCE_INPUT;
|
||||
}
|
||||
-
|
||||
- if (dynamic_cast<CDVDInputStream::IMenus*>(m_pInputStream))
|
||||
+
|
||||
+ if (CDVDInputStream::IMenus* ptr = dynamic_cast<CDVDInputStream::IMenus*>(m_pInputStream))
|
||||
{
|
||||
+ if(!ptr->GetState(state.player_state))
|
||||
+ state.player_state = "";
|
||||
+
|
||||
if(m_dvd.state == DVDSTATE_STILL)
|
||||
{
|
||||
state.time = XbmcThreads::SystemClockMillis() - m_dvd.iDVDStillStartTime;
|
||||
@@ -3880,13 +3883,6 @@ void CDVDPlayer::UpdatePlayState(double timeout)
|
||||
if(state.time_total <= 0)
|
||||
state.canseek = false;
|
||||
|
||||
- state.player_state = "";
|
||||
- if(CDVDInputStreamNavigator* ptr = dynamic_cast<CDVDInputStreamNavigator*>(m_pInputStream))
|
||||
- {
|
||||
- if(!ptr->GetNavigatorState(state.player_state))
|
||||
- state.player_state = "";
|
||||
- }
|
||||
-
|
||||
if (state.time_src == ETIMESOURCE_CLOCK)
|
||||
state.time_offset = m_offset_pts;
|
||||
else
|
||||
--
|
||||
1.8.1.6
|
||||
|
25
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.16-XB822abd9.patch
vendored
Normal file
25
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.16-XB822abd9.patch
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
From 822abd913ab38a742f710173f551bac22477eebd Mon Sep 17 00:00:00 2001
|
||||
From: Lee Pollock <scudlee@gmail.com>
|
||||
Date: Wed, 8 May 2013 18:04:41 +0100
|
||||
Subject: [PATCH] [Fix] Re-get details from nfo file after advancing to first
|
||||
episodedetails
|
||||
|
||||
---
|
||||
xbmc/NfoFile.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/xbmc/NfoFile.cpp b/xbmc/NfoFile.cpp
|
||||
index 973e4d0..791c92e 100644
|
||||
--- a/xbmc/NfoFile.cpp
|
||||
+++ b/xbmc/NfoFile.cpp
|
||||
@@ -71,6 +71,7 @@
|
||||
{
|
||||
int infos=0;
|
||||
m_headofdoc = strstr(m_headofdoc,"<episodedetails");
|
||||
+ bNfo = GetDetails(details);
|
||||
while (m_headofdoc && details.m_iEpisode != episode)
|
||||
{
|
||||
m_headofdoc = strstr(m_headofdoc+1,"<episodedetails");
|
||||
--
|
||||
1.8.1.6
|
||||
|
43
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.17.01-XB67fbfc5.patch
vendored
Normal file
43
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.17.01-XB67fbfc5.patch
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
From 67fbfc5c5ed4f8186451a9f970c82a10b545d71c Mon Sep 17 00:00:00 2001
|
||||
From: ulion <ulion2002@gmail.com>
|
||||
Date: Sat, 11 May 2013 06:03:55 +0800
|
||||
Subject: [PATCH] Fix color index overflow by reuse existed color in the
|
||||
vector. Fix #14293
|
||||
|
||||
---
|
||||
xbmc/guilib/GUITextLayout.cpp | 19 ++++++++++++++++---
|
||||
1 file changed, 16 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/xbmc/guilib/GUITextLayout.cpp b/xbmc/guilib/GUITextLayout.cpp
|
||||
index 33c8c48..8dc8b45 100644
|
||||
--- a/xbmc/guilib/GUITextLayout.cpp
|
||||
+++ b/xbmc/guilib/GUITextLayout.cpp
|
||||
@@ -401,9 +401,22 @@ void CGUITextLayout::ParseText(const CStdStringW &text, uint32_t defaultStyle, v
|
||||
{ // color
|
||||
size_t finish = text.Find(L']', pos + 5);
|
||||
if (on && finish != CStdString::npos && (size_t)text.Find(L"[/COLOR]",finish) != CStdString::npos)
|
||||
- { // create new color
|
||||
- newColor = colors.size();
|
||||
- colors.push_back(g_colorManager.GetColor(text.Mid(pos + 5, finish - pos - 5)));
|
||||
+ {
|
||||
+ color_t color = g_colorManager.GetColor(text.Mid(pos + 5, finish - pos - 5));
|
||||
+ vecColors::const_iterator it = std::find(colors.begin(), colors.end(), color);
|
||||
+ if (it == colors.end())
|
||||
+ { // create new color
|
||||
+ if (colors.size() <= 0xFF)
|
||||
+ {
|
||||
+ newColor = colors.size();
|
||||
+ colors.push_back(color);
|
||||
+ }
|
||||
+ else // we have only 8 bits for color index, fallback to first color if reach max.
|
||||
+ newColor = 0;
|
||||
+ }
|
||||
+ else
|
||||
+ // reuse existing color
|
||||
+ newColor = it - colors.begin();
|
||||
colorStack.push(newColor);
|
||||
}
|
||||
else if (!on && finish == pos + 5 && colorStack.size() > 1)
|
||||
--
|
||||
1.8.1.6
|
||||
|
41
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.17.02-XBef82d9b.patch
vendored
Normal file
41
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.17.02-XBef82d9b.patch
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
From ef82d9b6177a0576548e8e9cdc0eb17cf10524af Mon Sep 17 00:00:00 2001
|
||||
From: ulion <ulion2002@gmail.com>
|
||||
Date: Thu, 9 May 2013 13:11:59 +0800
|
||||
Subject: [PATCH] [OSX] Fix always on top after restore from fullscreen.
|
||||
|
||||
---
|
||||
xbmc/windowing/osx/WinSystemOSX.mm | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/windowing/osx/WinSystemOSX.mm b/xbmc/windowing/osx/WinSystemOSX.mm
|
||||
index e45693c..cb86e0a 100644
|
||||
--- a/xbmc/windowing/osx/WinSystemOSX.mm
|
||||
+++ b/xbmc/windowing/osx/WinSystemOSX.mm
|
||||
@@ -710,6 +710,7 @@ static void DisplayReconfigured(CGDirectDisplayID display,
|
||||
static NSView* last_view = NULL;
|
||||
static NSSize last_view_size;
|
||||
static NSPoint last_view_origin;
|
||||
+ static NSInteger last_window_level = NSNormalWindowLevel;
|
||||
bool was_fullscreen = m_bFullScreen;
|
||||
static int lastDisplayNr = res.iScreen;
|
||||
NSOpenGLContext* cur_context;
|
||||
@@ -779,6 +780,7 @@ static void DisplayReconfigured(CGDirectDisplayID display,
|
||||
last_view_origin = [last_view frame].origin;
|
||||
last_window_screen = [[last_view window] screen];
|
||||
last_window_origin = [[last_view window] frame].origin;
|
||||
+ last_window_level = [[last_view window] level];
|
||||
|
||||
if (CSettings::Get().GetBool("videoscreen.fakefullscreen"))
|
||||
{
|
||||
@@ -891,7 +893,7 @@ static void DisplayReconfigured(CGDirectDisplayID display,
|
||||
if (CSettings::Get().GetBool("videoscreen.fakefullscreen"))
|
||||
{
|
||||
// restore the windowed window level
|
||||
- [[last_view window] setLevel:NSNormalWindowLevel];
|
||||
+ [[last_view window] setLevel:last_window_level];
|
||||
|
||||
// Get rid of the new window we created.
|
||||
if (windowedFullScreenwindow != NULL)
|
||||
--
|
||||
1.8.1.6
|
||||
|
44
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.17.03-XB07c1ed5.patch
vendored
Normal file
44
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.17.03-XB07c1ed5.patch
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
From 07c1ed5752225f44a55ed9099c5cbfd34bff0906 Mon Sep 17 00:00:00 2001
|
||||
From: Ulion <ulion2002@gmail.com>
|
||||
Date: Mon, 29 Apr 2013 06:09:14 +0800
|
||||
Subject: [PATCH] Fix undefined reference caused by wrong detection of gcc
|
||||
builtin atomic functions.
|
||||
|
||||
---
|
||||
configure.in | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/configure.in b/configure.in
|
||||
index f0e4905..95f12da 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -850,7 +850,7 @@ AC_CHECK_SIZEOF([size_t])
|
||||
|
||||
# Check for intrinsics
|
||||
AC_MSG_CHECKING([for __sync_add_and_fetch(temp, 1)])
|
||||
-AC_TRY_COMPILE([],[long* temp=0; __sync_add_and_fetch(temp, 1);],
|
||||
+AC_TRY_LINK([],[long* temp=0; long ret=__sync_add_and_fetch(temp, 1);],
|
||||
[have_builtin_sync_add_and_fetch=yes],
|
||||
[have_builtin_sync_add_and_fetch=no])
|
||||
AC_MSG_RESULT($have_builtin_sync_add_and_fetch)
|
||||
@@ -860,7 +860,7 @@ if test "x$have_builtin_sync_add_and_fetch" = "xyes"; then
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([for __sync_sub_and_fetch(temp, 1)])
|
||||
-AC_TRY_COMPILE([],[long* temp=0; __sync_sub_and_fetch(temp, 1);],
|
||||
+AC_TRY_LINK([],[long* temp=0; long ret=__sync_sub_and_fetch(temp, 1);],
|
||||
[have_builtin_sync_sub_and_fetch=yes],
|
||||
[have_builtin_sync_sub_and_fetch=no])
|
||||
AC_MSG_RESULT($have_builtin_sync_sub_and_fetch)
|
||||
@@ -870,7 +870,7 @@ if test "x$have_builtin_sync_sub_and_fetch" = "xyes"; then
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([for __sync_val_compare_and_swap(temp, 1, 1)])
|
||||
-AC_TRY_COMPILE([],[long *temp = 0; __sync_val_compare_and_swap(temp, 1, 1);],
|
||||
+AC_TRY_LINK([],[long *temp = 0; long ret=__sync_val_compare_and_swap(temp, 1, 1);],
|
||||
[have_builtin_sync_val_compare_and_swap=yes],
|
||||
[have_builtin_sync_val_compare_and_swap=no])
|
||||
AC_MSG_RESULT($have_builtin_sync_val_compare_and_swap)
|
||||
--
|
||||
1.8.1.6
|
||||
|
26
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.17.04-XB01480bb.patch
vendored
Normal file
26
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.17.04-XB01480bb.patch
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
From 01480bb7ab2022616c938d2fd222cfdafa243b67 Mon Sep 17 00:00:00 2001
|
||||
From: ulion <ulion2002@gmail.com>
|
||||
Date: Wed, 10 Apr 2013 19:54:54 +0800
|
||||
Subject: [PATCH] avoid detect folder.jpg under 'add' item.
|
||||
|
||||
---
|
||||
xbmc/pictures/PictureThumbLoader.cpp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/pictures/PictureThumbLoader.cpp b/xbmc/pictures/PictureThumbLoader.cpp
|
||||
index ddff86c..61c624d 100644
|
||||
--- a/xbmc/pictures/PictureThumbLoader.cpp
|
||||
+++ b/xbmc/pictures/PictureThumbLoader.cpp
|
||||
@@ -132,7 +132,8 @@ void CPictureThumbLoader::ProcessFoldersAndArchives(CFileItem *pItem)
|
||||
return;
|
||||
}
|
||||
}
|
||||
- if ((pItem->m_bIsFolder || pItem->IsCBR() || pItem->IsCBZ()) && !pItem->m_bIsShareOrDrive && !pItem->IsParentFolder())
|
||||
+ if ((pItem->m_bIsFolder || pItem->IsCBR() || pItem->IsCBZ()) && !pItem->m_bIsShareOrDrive
|
||||
+ && !pItem->IsParentFolder() && !pItem->GetPath().Equals("add"))
|
||||
{
|
||||
// first check for a folder.jpg
|
||||
CStdString thumb = "folder.jpg";
|
||||
--
|
||||
1.8.1.6
|
||||
|
45
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.17.06-XB937e565.patch
vendored
Normal file
45
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.17.06-XB937e565.patch
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
From 937e565410c19c0c3c3651c467c919a69cf027a2 Mon Sep 17 00:00:00 2001
|
||||
From: ulion <ulion2002@gmail.com>
|
||||
Date: Mon, 13 May 2013 08:41:14 +0800
|
||||
Subject: [PATCH] Fix color tag didn't hide bug introduced by PR2725.
|
||||
|
||||
---
|
||||
xbmc/guilib/GUITextLayout.cpp | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/guilib/GUITextLayout.cpp b/xbmc/guilib/GUITextLayout.cpp
|
||||
index 8dc8b45..49c0459 100644
|
||||
--- a/xbmc/guilib/GUITextLayout.cpp
|
||||
+++ b/xbmc/guilib/GUITextLayout.cpp
|
||||
@@ -354,6 +354,7 @@ void CGUITextLayout::ParseText(const CStdStringW &text, uint32_t defaultStyle, v
|
||||
{
|
||||
uint32_t newStyle = 0;
|
||||
color_t newColor = currentColor;
|
||||
+ bool colorTagChange = false;
|
||||
bool newLine = false;
|
||||
// have a [ - check if it's an ON or OFF switch
|
||||
bool on(true);
|
||||
@@ -418,17 +419,19 @@ void CGUITextLayout::ParseText(const CStdStringW &text, uint32_t defaultStyle, v
|
||||
// reuse existing color
|
||||
newColor = it - colors.begin();
|
||||
colorStack.push(newColor);
|
||||
+ colorTagChange = true;
|
||||
}
|
||||
else if (!on && finish == pos + 5 && colorStack.size() > 1)
|
||||
{ // revert to previous color
|
||||
colorStack.pop();
|
||||
newColor = colorStack.top();
|
||||
+ colorTagChange = true;
|
||||
}
|
||||
if (finish != CStdString::npos)
|
||||
pos = finish + 1;
|
||||
}
|
||||
|
||||
- if (newStyle || newColor != currentColor || newLine)
|
||||
+ if (newStyle || colorTagChange || newLine)
|
||||
{ // we have a new style or a new color, so format up the previous segment
|
||||
CStdStringW subText = text.Mid(startPos, endPos - startPos);
|
||||
if (currentStyle & FONT_STYLE_UPPERCASE)
|
||||
--
|
||||
1.8.1.6
|
||||
|
28
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.18-2758.patch.bk
vendored
Normal file
28
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.18-2758.patch.bk
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
From 2441ddbbd638fb8b81c0eed46a78ba1a1b228413 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Fri, 17 May 2013 09:19:16 +0200
|
||||
Subject: [PATCH] backport some constructor initializations from
|
||||
92e8bc4a4361d730abac9ad3080cd6923e9d551a
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
|
||||
index f70a4f9..5af76d0 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp
|
||||
@@ -147,6 +147,10 @@
|
||||
dl_vdp_device_create_x11 = NULL;
|
||||
dl_vdp_get_proc_address = NULL;
|
||||
dl_vdp_preemption_callback_register = NULL;
|
||||
+ past[0] = NULL;
|
||||
+ past[1] = NULL;
|
||||
+ current = NULL;
|
||||
+ future = NULL;
|
||||
}
|
||||
|
||||
bool CVDPAU::Open(AVCodecContext* avctx, const enum PixelFormat, unsigned int surfaces)
|
||||
--
|
||||
1.8.1.6
|
||||
|
85
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.19-PR2761.patch
vendored
Normal file
85
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.19-PR2761.patch
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
From 6cba369a0f54231b145ce6b07a42cd1cd32261ec Mon Sep 17 00:00:00 2001
|
||||
From: ulion <ulion2002@gmail.com>
|
||||
Date: Sun, 21 Apr 2013 04:43:30 +0800
|
||||
Subject: [PATCH] Fixed: do not send Range request header when encounter error.
|
||||
|
||||
---
|
||||
xbmc/filesystem/CurlFile.cpp | 20 +++++++++++++++++++-
|
||||
xbmc/filesystem/CurlFile.h | 1 +
|
||||
2 files changed, 20 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/filesystem/CurlFile.cpp b/xbmc/filesystem/CurlFile.cpp
|
||||
index ff8250c..8667fc6 100644
|
||||
--- a/xbmc/filesystem/CurlFile.cpp
|
||||
+++ b/xbmc/filesystem/CurlFile.cpp
|
||||
@@ -197,6 +197,7 @@ size_t CCurlFile::CReadState::WriteCallback(char *buffer, size_t size, size_t ni
|
||||
m_bufferSize = 0;
|
||||
m_cancelled = false;
|
||||
m_bFirstLoop = true;
|
||||
+ m_sendRange = true;
|
||||
m_headerdone = false;
|
||||
}
|
||||
|
||||
@@ -255,8 +256,13 @@ void CCurlFile::CReadState::SetResume(void)
|
||||
* request header. If we don't the server may provide different content causing seeking to fail.
|
||||
* This only affects HTTP-like items, for FTP it's a null operation.
|
||||
*/
|
||||
- if (m_filePos == 0)
|
||||
+ if (m_sendRange && m_filePos == 0)
|
||||
g_curlInterface.easy_setopt(m_easyHandle, CURLOPT_RANGE, "0-");
|
||||
+ else
|
||||
+ {
|
||||
+ g_curlInterface.easy_setopt(m_easyHandle, CURLOPT_RANGE, NULL);
|
||||
+ m_sendRange = false;
|
||||
+ }
|
||||
|
||||
g_curlInterface.easy_setopt(m_easyHandle, CURLOPT_RESUME_FROM_LARGE, m_filePos);
|
||||
}
|
||||
@@ -866,6 +872,7 @@ bool CCurlFile::Open(const CURL& url)
|
||||
// setup common curl options
|
||||
SetCommonOptions(m_state);
|
||||
SetRequestHeaders(m_state);
|
||||
+ m_state->m_sendRange = m_seekable;
|
||||
|
||||
m_httpresponse = m_state->Connect(m_bufferSize);
|
||||
if( m_httpresponse < 0 || m_httpresponse >= 400)
|
||||
@@ -1046,6 +1053,7 @@ int64_t CCurlFile::Seek(int64_t iFilePosition, int iWhence)
|
||||
SetRequestHeaders(m_state);
|
||||
|
||||
m_state->m_filePos = nextPos;
|
||||
+ m_state->m_sendRange = true;
|
||||
if (oldstate)
|
||||
m_state->m_fileSize = oldstate->m_fileSize;
|
||||
|
||||
@@ -1287,6 +1295,16 @@ bool CCurlFile::CReadState::FillBuffer(unsigned int want)
|
||||
msg->data.result == CURLE_RECV_ERROR) &&
|
||||
!m_bFirstLoop)
|
||||
CURLresult = msg->data.result;
|
||||
+ else if ( (msg->data.result == CURLE_HTTP_RANGE_ERROR ||
|
||||
+ msg->data.result == CURLE_HTTP_RETURNED_ERROR) &&
|
||||
+ m_bFirstLoop &&
|
||||
+ m_filePos == 0 &&
|
||||
+ m_sendRange)
|
||||
+ {
|
||||
+ // If server returns a range or http error, retry with range disabled
|
||||
+ CURLresult = msg->data.result;
|
||||
+ m_sendRange = false;
|
||||
+ }
|
||||
else
|
||||
return false;
|
||||
}
|
||||
diff --git a/xbmc/filesystem/CurlFile.h b/xbmc/filesystem/CurlFile.h
|
||||
index d25fb58..a48207a 100644
|
||||
--- a/xbmc/filesystem/CurlFile.h
|
||||
+++ b/xbmc/filesystem/CurlFile.h
|
||||
@@ -101,6 +101,7 @@
|
||||
int64_t m_fileSize;
|
||||
int64_t m_filePos;
|
||||
bool m_bFirstLoop;
|
||||
+ bool m_sendRange;
|
||||
|
||||
/* returned http header */
|
||||
CHttpHeader m_httpheader;
|
||||
--
|
||||
1.8.1.6
|
||||
|
27
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.20-XB812a890.patch
vendored
Normal file
27
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.20-XB812a890.patch
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
From 812a89032539d7d40d8d27b10337c1dd2ccca29b Mon Sep 17 00:00:00 2001
|
||||
From: montellese <montellese@xbmc.org>
|
||||
Date: Sun, 19 May 2013 15:46:05 +0200
|
||||
Subject: [PATCH] CGUISliderControl: only switch between selectors on <Enter>
|
||||
if there are more than one
|
||||
|
||||
---
|
||||
xbmc/guilib/GUISliderControl.cpp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xbmc/guilib/GUISliderControl.cpp b/xbmc/guilib/GUISliderControl.cpp
|
||||
index 9de3413..5cce7a8 100644
|
||||
--- a/xbmc/guilib/GUISliderControl.cpp
|
||||
+++ b/xbmc/guilib/GUISliderControl.cpp
|
||||
@@ -174,7 +174,8 @@ bool CGUISliderControl::OnAction(const CAction &action)
|
||||
|
||||
case ACTION_SELECT_ITEM:
|
||||
// switch between the two sliders
|
||||
- SwitchRangeSelector();
|
||||
+ if (m_rangeSelection)
|
||||
+ SwitchRangeSelector();
|
||||
return true;
|
||||
|
||||
default:
|
||||
--
|
||||
1.8.1.6
|
||||
|
28
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.21-XB2e18d81.patch
vendored
Normal file
28
packages/mediacenter/xbmc/patches/12.2.0/xbmc-990.21-XB2e18d81.patch
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
From 2e18d8108e29d58199616d7d6457026ef736cf47 Mon Sep 17 00:00:00 2001
|
||||
From: Rainer Hochecker <fernetmenta@online.de>
|
||||
Date: Fri, 17 May 2013 09:07:27 +0200
|
||||
Subject: [PATCH] pvr: fix channel switch for addons using other stream
|
||||
|
||||
---
|
||||
xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp
|
||||
index aa3298b..397ea5d 100644
|
||||
--- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp
|
||||
+++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamPVRManager.cpp
|
||||
@@ -315,8 +315,9 @@ bool CDVDInputStreamPVRManager::UpdateItem(CFileItem& item)
|
||||
|
||||
m_eof = IsEOF();
|
||||
|
||||
- if (m_pOtherStream)
|
||||
- return m_pOtherStream->NextStream();
|
||||
+ CDVDInputStream::ENextStream next;
|
||||
+ if (m_pOtherStream && ((next = m_pOtherStream->NextStream()) != NEXTSTREAM_NONE))
|
||||
+ return next;
|
||||
else if(m_pFile->SkipNext())
|
||||
{
|
||||
if (m_eof)
|
||||
--
|
||||
1.8.1.6
|
||||
|
Loading…
x
Reference in New Issue
Block a user