Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/Subtitles/RLECodedSubtitle.cpp')
-rw-r--r--src/Subtitles/RLECodedSubtitle.cpp40
1 files changed, 19 insertions, 21 deletions
diff --git a/src/Subtitles/RLECodedSubtitle.cpp b/src/Subtitles/RLECodedSubtitle.cpp
index 0b187d765..b130b0de9 100644
--- a/src/Subtitles/RLECodedSubtitle.cpp
+++ b/src/Subtitles/RLECodedSubtitle.cpp
@@ -1,5 +1,5 @@
/*
- * (C) 2008-2014 see Authors.txt
+ * (C) 2008-2016 see Authors.txt
*
* This file is part of MPC-HC.
*
@@ -27,8 +27,8 @@ CRLECodedSubtitle::CRLECodedSubtitle(CCritSec* pLock, const CString& name, LCID
: CSubPicProviderImpl(pLock)
, m_name(name)
, m_lcid(lcid)
+ , m_eHearingImpaired(Subtitle::HI_UNKNOWN)
{
-
}
STDMETHODIMP CRLECodedSubtitle::NonDelegatingQueryInterface(REFIID riid, void** ppv)
@@ -102,40 +102,38 @@ STDMETHODIMP CRLECodedSubtitle::Reload()
return S_OK;
}
-HRESULT CRLECodedSubtitle::NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate)
-{
- CAutoLock cAutoLock(&m_csCritSec);
-
- Reset();
-
- return S_OK;
-}
-
STDMETHODIMP CRLECodedSubtitle::SetSourceTargetInfo(CString yuvMatrix, int targetBlackLevel, int targetWhiteLevel)
{
+ yuvMatrix.Replace(_T(".VSFilter"), _T(""));
int nPos = 0;
CString range = yuvMatrix.Tokenize(_T("."), nPos);
CString matrix = yuvMatrix.Mid(nPos);
- m_infoSourceTarget.sourceBlackLevel = 16;
- m_infoSourceTarget.sourceWhiteLevel = 235;
+ ColorConvTable::YuvRangeType sourceRange = ColorConvTable::RANGE_TV;
if (range == _T("PC")) {
- m_infoSourceTarget.sourceBlackLevel = 0;
- m_infoSourceTarget.sourceWhiteLevel = 255;
+ sourceRange = ColorConvTable::RANGE_PC;
}
if (matrix == _T("709")) {
- m_infoSourceTarget.sourceMatrix = BT_709;
+ m_eSourceMatrix = ColorConvTable::BT709;
} else if (matrix == _T("240M")) {
- m_infoSourceTarget.sourceMatrix = BT_709;
+ m_eSourceMatrix = ColorConvTable::BT709;
} else if (matrix == _T("601")) {
- m_infoSourceTarget.sourceMatrix = BT_601;
+ m_eSourceMatrix = ColorConvTable::BT601;
} else {
- m_infoSourceTarget.sourceMatrix = NONE;
+ m_eSourceMatrix = ColorConvTable::NONE;
}
- m_infoSourceTarget.targetBlackLevel = targetBlackLevel;
- m_infoSourceTarget.targetWhiteLevel = targetWhiteLevel;
+ ColorConvTable::SetDefaultConvType(ColorConvTable::BT601, sourceRange, (targetWhiteLevel < 245), false); // Matrix isn't relevant here.
+
+ return S_OK;
+}
+
+HRESULT CRLECodedSubtitle::NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate)
+{
+ CAutoLock cAutoLock(&m_csCritSec);
+
+ Reset();
return S_OK;
}