From de9212a260d82d7ce6584bf11adde8aa7b9035e9 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Wed, 16 Sep 2015 19:05:12 +0100 Subject: [PATCH] [3d] Make MVC a valid 3D filename tag --- xbmc/guilib/StereoscopicsManager.cpp | 9 +++++++++ xbmc/settings/AdvancedSettings.cpp | 2 ++ xbmc/settings/AdvancedSettings.h | 1 + 3 files changed, 12 insertions(+) diff --git a/xbmc/guilib/StereoscopicsManager.cpp b/xbmc/guilib/StereoscopicsManager.cpp index b34873cba6534..1443acaf0f25d 100644 --- a/xbmc/guilib/StereoscopicsManager.cpp +++ b/xbmc/guilib/StereoscopicsManager.cpp @@ -197,6 +197,15 @@ std::string CStereoscopicsManager::DetectStereoModeByString(const std::string &n if (re.RegFind(searchString) > -1) stereoMode = "top_bottom"; + if (!re.RegComp(g_advancedSettings.m_stereoscopicregex_mvc.c_str())) + { + CLog::Log(LOGERROR, "%s: Invalid RegExp for matching 3d MVC content:'%s'", __FUNCTION__, g_advancedSettings.m_stereoscopicregex_mvc.c_str()); + return stereoMode; + } + + if (re.RegFind(searchString) > -1) + stereoMode = "left_right"; + return stereoMode; } diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp index 46d72aa072d34..cca5c7f932241 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp @@ -402,6 +402,7 @@ void CAdvancedSettings::Initialize() m_stereoscopicregex_3d = "[-. _]3d[-. _]"; m_stereoscopicregex_sbs = "[-. _]h?sbs[-. _]"; m_stereoscopicregex_tab = "[-. _]h?tab[-. _]"; + m_stereoscopicregex_mvc = "[-. _]h?mvc[-. _]"; m_useDisplayControlHWStereo = false; @@ -551,6 +552,7 @@ void CAdvancedSettings::ParseSettingsFile(const std::string &file) XMLUtils::GetString(pElement, "stereoscopicregex3d", m_stereoscopicregex_3d); XMLUtils::GetString(pElement, "stereoscopicregexsbs", m_stereoscopicregex_sbs); XMLUtils::GetString(pElement, "stereoscopicregextab", m_stereoscopicregex_tab); + XMLUtils::GetString(pElement, "stereoscopicregexmvc", m_stereoscopicregex_mvc); XMLUtils::GetFloat(pElement, "subsdelayrange", m_videoSubsDelayRange, 10, 600); XMLUtils::GetFloat(pElement, "audiodelayrange", m_videoAudioDelayRange, 10, 600); XMLUtils::GetString(pElement, "defaultplayer", m_videoDefaultPlayer); diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h index fc526d11c3a78..6b0e3b8cf9e3f 100644 --- a/xbmc/settings/AdvancedSettings.h +++ b/xbmc/settings/AdvancedSettings.h @@ -372,6 +372,7 @@ class CAdvancedSettings : public ISettingCallback, public ISettingsHandler std::string m_stereoscopicregex_3d; std::string m_stereoscopicregex_sbs; std::string m_stereoscopicregex_tab; + std::string m_stereoscopicregex_mvc; bool m_useDisplayControlHWStereo;