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:
authorAleksoid <aleksoid@users.sourceforge.net>2011-12-03 16:00:36 +0400
committerAleksoid <aleksoid@users.sourceforge.net>2011-12-03 16:00:36 +0400
commit77ac6e1d1ded3bbb455dcb29cc7e045530ebb277 (patch)
treeb6ab34496f14561cca6d7da4d81d6d8954087382 /src/filters/parser/MpegSplitter
parentdbafad790e361edc1d06ca8a3be84cdf11f03645 (diff)
Add : Support language info for Audio stream on .IFO play;
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@3875 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/filters/parser/MpegSplitter')
-rw-r--r--src/filters/parser/MpegSplitter/MpegSplitter.cpp13
-rw-r--r--src/filters/parser/MpegSplitter/MpegSplitter.h2
2 files changed, 14 insertions, 1 deletions
diff --git a/src/filters/parser/MpegSplitter/MpegSplitter.cpp b/src/filters/parser/MpegSplitter/MpegSplitter.cpp
index 47f650fdc..0d5d7ff70 100644
--- a/src/filters/parser/MpegSplitter/MpegSplitter.cpp
+++ b/src/filters/parser/MpegSplitter/MpegSplitter.cpp
@@ -788,6 +788,12 @@ HRESULT CMpegSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
return hr;
}
+ if(m_pFile->m_type == CMpegSplitterFile::ps) {
+ if(m_pInput && m_pInput->IsConnected() && (GetCLSID(m_pInput->GetConnected()) == GUIDFromCString(_T("{773EAEDE-D5EE-4fce-9C8F-C4F53D0A2F73}")))){ // MPC VTS Reader
+ pTI = GetFilterFromPin(m_pInput->GetConnected());
+ }
+ }
+
CString cs_audioProgram = _T("");
CString cs_subpicProgram = _T("");
@@ -859,6 +865,8 @@ HRESULT CMpegSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
lang_name = ISO6392ToLanguage(ch);
}
+ lang_name = pTI ? pTI->GetTrackName(s.ps1id) : lang_name;
+
CString FormatDesc = GetMediaTypeDesc(&s.mt, pClipInfo, StreamType, lang_name);
if (!FormatDesc.IsEmpty()) {
@@ -944,6 +952,8 @@ HRESULT CMpegSplitterFilter::CreateOutputs(IAsyncReader* pAsyncReader)
lang_name = ISO6392ToLanguage(ch);
}
+ lang_name = pTI ? pTI->GetTrackName(s.ps1id) : lang_name;
+
CString FormatDesc = GetMediaTypeDesc(&s.mt, pClipInfo, StreamType, lang_name);
if (!FormatDesc.IsEmpty()) {
@@ -1351,7 +1361,6 @@ STDMETHODIMP CMpegSplitterFilter::Info(long lIndex, AM_MEDIA_TYPE** ppmt, DWORD*
*ppUnk = NULL;
}
-
if(ppszName) {
CStringW name = CMpegSplitterFile::CStreamList::ToString(i);
@@ -1381,6 +1390,8 @@ STDMETHODIMP CMpegSplitterFilter::Info(long lIndex, AM_MEDIA_TYPE** ppmt, DWORD*
lang_name = ISO6392ToLanguage(ch);
}
+ lang_name = pTI ? pTI->GetTrackName(s.ps1id) : lang_name;
+
CString FormatDesc = GetMediaTypeDesc(&s.mt, pClipInfo, StreamType, lang_name);
if (!FormatDesc.IsEmpty()) {
diff --git a/src/filters/parser/MpegSplitter/MpegSplitter.h b/src/filters/parser/MpegSplitter/MpegSplitter.h
index 800599582..f3909b398 100644
--- a/src/filters/parser/MpegSplitter/MpegSplitter.h
+++ b/src/filters/parser/MpegSplitter/MpegSplitter.h
@@ -24,6 +24,7 @@
#include "../BaseSplitter/BaseSplitter.h"
#include "MpegSplitterFile.h"
#include "MpegSplitterSettingsWnd.h"
+#include <ITrackInfo.h>
#define PauseGraph \
CComQIPtr<IMediaControl> _pMC(m_pGraph); \
@@ -57,6 +58,7 @@ class __declspec(uuid("DC257063-045F-4BE2-BD5B-E12279C464F0"))
protected:
CAutoPtr<CMpegSplitterFile> m_pFile;
+ CComQIPtr<ITrackInfo> pTI;
HRESULT CreateOutputs(IAsyncReader* pAsyncReader);
void ReadClipInfo(LPCOLESTR pszFileName);