aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/skin.confluence/720p/DialogButtonMenu.xml4
-rw-r--r--addons/skin.confluence/720p/ViewsFileMode.xml2
-rw-r--r--addons/skin.confluence/media/flagging/video/hdmv.pngbin0 -> 6017 bytes
-rw-r--r--xbmc/cores/omxplayer/OMXVideo.cpp4
-rw-r--r--xbmc/guilib/GUIInfoTypes.cpp3
-rw-r--r--xbmc/interfaces/legacy/Window.cpp2
-rw-r--r--xbmc/interfaces/legacy/WindowInterceptor.h3
-rw-r--r--xbmc/interfaces/python/LanguageHook.h1
-rw-r--r--xbmc/interfaces/python/swig.h1
-rw-r--r--xbmc/linux/OMXClock.cpp6
-rw-r--r--xbmc/threads/platform/win/ThreadLocal.h19
11 files changed, 29 insertions, 16 deletions
diff --git a/addons/skin.confluence/720p/DialogButtonMenu.xml b/addons/skin.confluence/720p/DialogButtonMenu.xml
index 2b08f6942e..ac30c2add9 100644
--- a/addons/skin.confluence/720p/DialogButtonMenu.xml
+++ b/addons/skin.confluence/720p/DialogButtonMenu.xml
@@ -112,12 +112,12 @@
<textwidth>290</textwidth>
<texturefocus border="25,5,25,5">ShutdownButtonFocus.png</texturefocus>
<texturenofocus border="25,5,25,5">ShutdownButtonNoFocus.png</texturenofocus>
- <onclick>XBMC.AlarmClock(shutdowntimer,XBMC.Powerdown())</onclick>
+ <onclick>XBMC.AlarmClock(shutdowntimer,XBMC.Shutdown())</onclick>
<pulseonselect>no</pulseonselect>
<font>font13</font>
<label>20150</label>
<visible>!System.HasAlarm(shutdowntimer)</visible>
- <visible>System.CanPowerDown</visible>
+ <visible>System.CanPowerDown | System.CanSuspend | System.CanHibernate</visible>
</control>
<control type="button" id="5">
<description>Cancel Shutdown Timer</description>
diff --git a/addons/skin.confluence/720p/ViewsFileMode.xml b/addons/skin.confluence/720p/ViewsFileMode.xml
index 49bd9c121c..656fe95889 100644
--- a/addons/skin.confluence/720p/ViewsFileMode.xml
+++ b/addons/skin.confluence/720p/ViewsFileMode.xml
@@ -420,7 +420,7 @@
<onright>60</onright>
<onup>505</onup>
<ondown>505</ondown>
- <viewtype label="$LOCALIZE[539] $LOCALIZE[536]">list</viewtype>
+ <viewtype label="$LOCALIZE[539]">list</viewtype>
<pagecontrol>60</pagecontrol>
<scrolltime>200</scrolltime>
<preloaditems>2</preloaditems>
diff --git a/addons/skin.confluence/media/flagging/video/hdmv.png b/addons/skin.confluence/media/flagging/video/hdmv.png
new file mode 100644
index 0000000000..f19d4f2fcb
--- /dev/null
+++ b/addons/skin.confluence/media/flagging/video/hdmv.png
Binary files differ
diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp
index 989d3a88a7..77d7af1d13 100644
--- a/xbmc/cores/omxplayer/OMXVideo.cpp
+++ b/xbmc/cores/omxplayer/OMXVideo.cpp
@@ -709,10 +709,6 @@ int COMXVideo::Decode(uint8_t *pData, int iSize, double dts, double pts)
if( m_drop_state )
return true;
- // avi files with packed B frames have "not-coded" dummy frames that decoder doesn't like
- if (m_codingType == OMX_VIDEO_CodingMPEG4 && iSize <= 7)
- return true;
-
unsigned int demuxer_bytes = (unsigned int)iSize;
uint8_t *demuxer_content = pData;
diff --git a/xbmc/guilib/GUIInfoTypes.cpp b/xbmc/guilib/GUIInfoTypes.cpp
index 53574234a8..31438cddfa 100644
--- a/xbmc/guilib/GUIInfoTypes.cpp
+++ b/xbmc/guilib/GUIInfoTypes.cpp
@@ -356,8 +356,9 @@ CGUIInfoLabel::CInfoPortion::CInfoPortion(int info, const CStdString &prefix, co
CStdString CGUIInfoLabel::CInfoPortion::GetLabel(const CStdString &info) const
{
CStdString label = m_prefix + info + m_postfix;
- if (m_escaped) // escape all quotes, then quote
+ if (m_escaped) // escape all quotes and backslashes, then quote
{
+ label.Replace("\\", "\\\\");
label.Replace("\"", "\\\"");
return "\"" + label + "\"";
}
diff --git a/xbmc/interfaces/legacy/Window.cpp b/xbmc/interfaces/legacy/Window.cpp
index aae3631243..9367782ce0 100644
--- a/xbmc/interfaces/legacy/Window.cpp
+++ b/xbmc/interfaces/legacy/Window.cpp
@@ -37,6 +37,8 @@ namespace XBMCAddon
{
namespace xbmcgui
{
+ XbmcThreads::ThreadLocal<ref> InterceptorBase::upcallTls;
+
/**
* Used in add/remove control. It only locks if it's given a
* non-NULL CCriticalSection. It's given a NULL CCriticalSection
diff --git a/xbmc/interfaces/legacy/WindowInterceptor.h b/xbmc/interfaces/legacy/WindowInterceptor.h
index 636136ae1d..263de363aa 100644
--- a/xbmc/interfaces/legacy/WindowInterceptor.h
+++ b/xbmc/interfaces/legacy/WindowInterceptor.h
@@ -43,7 +43,8 @@ namespace XBMCAddon
{
protected:
AddonClass::Ref<Window> window;
- XbmcThreads::ThreadLocal<ref> upcallTls;
+ // This instance is in Window.cpp
+ static XbmcThreads::ThreadLocal<ref> upcallTls;
InterceptorBase() : window(NULL) { upcallTls.set(NULL); }
diff --git a/xbmc/interfaces/python/LanguageHook.h b/xbmc/interfaces/python/LanguageHook.h
index eccedd951b..a74c7579d6 100644
--- a/xbmc/interfaces/python/LanguageHook.h
+++ b/xbmc/interfaces/python/LanguageHook.h
@@ -28,7 +28,6 @@
#include <Python.h>
#include "interfaces/legacy/LanguageHook.h"
-#include "threads/ThreadLocal.h"
#include "threads/Event.h"
#include <set>
diff --git a/xbmc/interfaces/python/swig.h b/xbmc/interfaces/python/swig.h
index c47f2af51f..20f37e3be5 100644
--- a/xbmc/interfaces/python/swig.h
+++ b/xbmc/interfaces/python/swig.h
@@ -27,7 +27,6 @@
#include "interfaces/legacy/Exception.h"
#include "interfaces/legacy/AddonClass.h"
#include "interfaces/legacy/Window.h"
-#include "threads/ThreadLocal.h"
namespace PythonBindings
{
diff --git a/xbmc/linux/OMXClock.cpp b/xbmc/linux/OMXClock.cpp
index 7f0461e1cd..e28c0b9d12 100644
--- a/xbmc/linux/OMXClock.cpp
+++ b/xbmc/linux/OMXClock.cpp
@@ -334,7 +334,8 @@ bool OMXClock::OMXSetReferenceClock(bool lock /* = true */)
ret = false;
}
- UnLock();
+ if(lock)
+ UnLock();
return ret;
}
@@ -634,7 +635,8 @@ bool OMXClock::OMXReset(bool lock /* = true */)
if(!OMXSetReferenceClock(false))
{
- UnLock();
+ if(lock)
+ UnLock();
return false;
}
diff --git a/xbmc/threads/platform/win/ThreadLocal.h b/xbmc/threads/platform/win/ThreadLocal.h
index 0960ac5aa3..d560599653 100644
--- a/xbmc/threads/platform/win/ThreadLocal.h
+++ b/xbmc/threads/platform/win/ThreadLocal.h
@@ -21,6 +21,7 @@
#pragma once
#include <windows.h>
+#include "commons/Exception.h"
namespace XbmcThreads
{
@@ -32,11 +33,23 @@ namespace XbmcThreads
{
DWORD key;
public:
- inline ThreadLocal() { key = TlsAlloc(); }
+ inline ThreadLocal()
+ {
+ if ((key = TlsAlloc()) == TLS_OUT_OF_INDEXES)
+ throw XbmcCommons::UncheckedException("Ran out of Windows TLS Indexes. Windows Error Code %d",(int)GetLastError());
+ }
- inline ~ThreadLocal() { TlsFree(key); }
+ inline ~ThreadLocal()
+ {
+ if (!TlsFree(key))
+ throw XbmcCommons::UncheckedException("Failed to free Tls %d, Windows Error Code %d",(int)key, (int)GetLastError());
+ }
- inline void set(T* val) { TlsSetValue(key,(LPVOID)val); }
+ inline void set(T* val)
+ {
+ if (!TlsSetValue(key,(LPVOID)val))
+ throw XbmcCommons::UncheckedException("Failed to set Tls %d, Windows Error Code %d",(int)key, (int)GetLastError());
+ }
inline T* get() { return (T*)TlsGetValue(key); }
};