diff --git a/packages/mediacenter/xbmc/config/advancedsettings.xml b/packages/mediacenter/xbmc/config/advancedsettings.xml
index 0643968a64..ed151d4466 100644
--- a/packages/mediacenter/xbmc/config/advancedsettings.xml
+++ b/packages/mediacenter/xbmc/config/advancedsettings.xml
@@ -12,6 +12,7 @@
175
+ true
30
diff --git a/packages/mediacenter/xbmc/patches/12.1/xbmc-601-add_multithread_support_for_hi10p-0.1.patch b/packages/mediacenter/xbmc/patches/12.1/xbmc-601-add_multithread_support_for_hi10p-0.1.patch
new file mode 100644
index 0000000000..3b285fd152
--- /dev/null
+++ b/packages/mediacenter/xbmc/patches/12.1/xbmc-601-add_multithread_support_for_hi10p-0.1.patch
@@ -0,0 +1,107 @@
+From ca0ddf0673dea966af5bf0bc562f9ff69a551cd9 Mon Sep 17 00:00:00 2001
+From: fritsch
+Date: Sat, 12 Jan 2013 13:03:50 +0100
+Subject: [PATCH] dvdplayer: Allow multithread decoding for hi10p content by
+ default
+
+This allows decoding of some hi10p material on e.g. AMD Fusion with
+both cores at the max. This introduces a new advancedsetting named
+disablehi10pmultithreading to disable hi10p decoded multithreaded.
+---
+ .../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 18 ++++++++++++++++--
+ .../dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h | 1 +
+ xbmc/settings/AdvancedSettings.cpp | 2 ++
+ xbmc/settings/AdvancedSettings.h | 1 +
+ 4 files changed, 20 insertions(+), 2 deletions(-)
+
+diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+index 8f81637..77ac6b1 100644
+--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp
+@@ -138,6 +138,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx
+ m_iScreenHeight = 0;
+ m_iOrientation = 0;
+ m_bSoftware = false;
++ m_isHi10p = false;
+ m_pHardware = NULL;
+ m_iLastKeyframe = 0;
+ m_dts = DVD_NOPTS_VALUE;
+@@ -187,7 +188,10 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
+ case FF_PROFILE_H264_HIGH_444_PREDICTIVE:
+ case FF_PROFILE_H264_HIGH_444_INTRA:
+ case FF_PROFILE_H264_CAVLC_444:
++ // this is needed to not open the decoders
+ m_bSoftware = true;
++ // this we need to enable multithreading for hi10p via advancedsettings
++ m_isHi10p = true;
+ break;
+ }
+ }
+@@ -247,8 +251,18 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options
+ m_pCodecContext->codec_tag = hints.codec_tag;
+ /* Only allow slice threading, since frame threading is more
+ * sensitive to changes in frame sizes, and it causes crashes
+- * during HW accell */
+- m_pCodecContext->thread_type = FF_THREAD_SLICE;
++ * during HW accell - so we unset it in this case.
++ *
++ * When we detect Hi10p and user did not disable hi10pmultithreading
++ * via advancedsettings.xml we keep the ffmpeg default thread type.
++ * */
++ if(m_isHi10p && !g_advancedSettings.m_videoDisableHi10pMultithreading)
++ {
++ CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Keep default threading for Hi10p: %d",
++ m_pCodecContext->thread_type);
++ }
++ else
++ m_pCodecContext->thread_type = FF_THREAD_SLICE;
+
+ #if defined(TARGET_DARWIN_IOS)
+ // ffmpeg with enabled neon will crash and burn if this is enabled
+diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
+index 61d0305..827b2d9 100644
+--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h
+@@ -114,6 +114,7 @@ class CDVDVideoCodecFFmpeg : public CDVDVideoCodec
+
+ std::string m_name;
+ bool m_bSoftware;
++ bool m_isHi10p;
+ IHardwareDecoder *m_pHardware;
+ int m_iLastKeyframe;
+ double m_dts;
+diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
+index 16800b7..1e0f3e0 100644
+--- a/xbmc/settings/AdvancedSettings.cpp
++++ b/xbmc/settings/AdvancedSettings.cpp
+@@ -112,6 +112,7 @@ void CAdvancedSettings::Initialize()
+ m_DXVANoDeintProcForProgressive = false;
+ m_videoFpsDetect = 1;
+ m_videoDefaultLatency = 0.0;
++ m_videoDisableHi10pMultithreading = false;
+
+ m_musicUseTimeSeeking = true;
+ m_musicTimeSeekForward = 10;
+@@ -498,6 +499,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file)
+ XMLUtils::GetBoolean(pElement,"enablehighqualityhwscalers", m_videoEnableHighQualityHwScalers);
+ XMLUtils::GetFloat(pElement,"autoscalemaxfps",m_videoAutoScaleMaxFps, 0.0f, 1000.0f);
+ XMLUtils::GetBoolean(pElement,"allowmpeg4vdpau",m_videoAllowMpeg4VDPAU);
++ XMLUtils::GetBoolean(pElement,"disablehi10pmultithreading",m_videoDisableHi10pMultithreading);
+ XMLUtils::GetBoolean(pElement,"allowmpeg4vaapi",m_videoAllowMpeg4VAAPI);
+ XMLUtils::GetBoolean(pElement, "disablebackgrounddeinterlace", m_videoDisableBackgroundDeinterlace);
+ XMLUtils::GetInt(pElement, "useocclusionquery", m_videoCaptureUseOcclusionQuery, -1, 1);
+diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h
+index 27887d4..fc05e41 100644
+--- a/xbmc/settings/AdvancedSettings.h
++++ b/xbmc/settings/AdvancedSettings.h
+@@ -164,6 +164,7 @@ class CAdvancedSettings
+ bool m_DXVAForceProcessorRenderer;
+ bool m_DXVANoDeintProcForProgressive;
+ int m_videoFpsDetect;
++ bool m_videoDisableHi10pMultithreading;
+
+ CStdString m_videoDefaultPlayer;
+ CStdString m_videoDefaultDVDPlayer;
+--
+1.7.10
+
diff --git a/projects/ARCTIC_MC/xbmc/advancedsettings.xml b/projects/ARCTIC_MC/xbmc/advancedsettings.xml
index a2942f0628..9293f62b5e 100644
--- a/projects/ARCTIC_MC/xbmc/advancedsettings.xml
+++ b/projects/ARCTIC_MC/xbmc/advancedsettings.xml
@@ -12,6 +12,7 @@
175
+ true
30
diff --git a/projects/ATV/xbmc/advancedsettings.xml b/projects/ATV/xbmc/advancedsettings.xml
index b5fb5620ec..7bca0b7f15 100644
--- a/projects/ATV/xbmc/advancedsettings.xml
+++ b/projects/ATV/xbmc/advancedsettings.xml
@@ -12,6 +12,7 @@
175
+ true
30
diff --git a/projects/Fusion/xbmc/advancedsettings.xml b/projects/Fusion/xbmc/advancedsettings.xml
index a2942f0628..9293f62b5e 100644
--- a/projects/Fusion/xbmc/advancedsettings.xml
+++ b/projects/Fusion/xbmc/advancedsettings.xml
@@ -12,6 +12,7 @@
175
+ true
30
diff --git a/projects/RPi/xbmc/advancedsettings.xml b/projects/RPi/xbmc/advancedsettings.xml
index 78b6378b47..49183fc86b 100644
--- a/projects/RPi/xbmc/advancedsettings.xml
+++ b/projects/RPi/xbmc/advancedsettings.xml
@@ -11,6 +11,7 @@