From 7237707f30f0785cdd2b3e7982708c35dc4deb2f 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 d9e0fa4ad9725..bdf2fb071ac6e 100644 --- a/xbmc/guilib/StereoscopicsManager.cpp +++ b/xbmc/guilib/StereoscopicsManager.cpp @@ -202,6 +202,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 7465f650fc750..aff79738ac45a 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp @@ -398,6 +398,7 @@ void CAdvancedSettings::Initialize() m_stereoscopicregex_3d = "[-. _]3d[-. _]"; m_stereoscopicregex_sbs = "[-. _]h?sbs[-. _]"; m_stereoscopicregex_tab = "[-. _]h?tab[-. _]"; + m_stereoscopicregex_mvc = "[-. _]h?mvc[-. _]"; m_videoAssFixedWorks = false; @@ -543,6 +544,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::GetInt(pElement, "blackbarcolour", m_videoBlackBarColour, 0, 255); diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h index e6fa18a4a7ee6..9283dd89bd0bb 100644 --- a/xbmc/settings/AdvancedSettings.h +++ b/xbmc/settings/AdvancedSettings.h @@ -397,6 +397,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; /*!< @brief position behavior of ass subtitiles when setting "subtitle position on screen" set to "fixed" True to show at the fixed position set in video calibration