diff options
author | Casimir666 <casimir666@users.sourceforge.net> | 2011-01-12 22:34:20 +0300 |
---|---|---|
committer | Casimir666 <casimir666@users.sourceforge.net> | 2011-01-12 22:34:20 +0300 |
commit | 6b81948e4bd7f65ed23dfab5b89c6b1ec495098f (patch) | |
tree | 0ecf965e2307d48b8ca76a5d6dd81f0ecfe422a4 /src/filters/parser/BaseSplitter/BaseSplitter.cpp | |
parent | e6cc38b87e196b67c87ad7592322d170abff4a54 (diff) |
New : read BRD chapters
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@2840 10f7b99b-c216-0410-bff0-8a66a9350fd8
Diffstat (limited to 'src/filters/parser/BaseSplitter/BaseSplitter.cpp')
-rw-r--r-- | src/filters/parser/BaseSplitter/BaseSplitter.cpp | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/src/filters/parser/BaseSplitter/BaseSplitter.cpp b/src/filters/parser/BaseSplitter/BaseSplitter.cpp index c23a2cd8a..9749ac27a 100644 --- a/src/filters/parser/BaseSplitter/BaseSplitter.cpp +++ b/src/filters/parser/BaseSplitter/BaseSplitter.cpp @@ -1206,18 +1206,38 @@ STDMETHODIMP CBaseSplitterFilter::Load(LPCOLESTR pszFileName, const AM_MEDIA_TYP HRESULT hr = E_FAIL;
CComPtr<IAsyncReader> pAsyncReader;
CAtlList<CHdmvClipInfo::PlaylistItem> Items;
- if (BuildPlaylist (pszFileName, Items)) {
+ CAtlList<CHdmvClipInfo::PlaylistChapter> Chapters;
+
+ if (BuildPlaylist (pszFileName, Items))
pAsyncReader = (IAsyncReader*)DNew CAsyncFileReader(Items, hr);
- } else {
+ else
pAsyncReader = (IAsyncReader*)DNew CAsyncFileReader(CString(pszFileName), hr);
- }
+
if(FAILED(hr)
|| FAILED(hr = DeleteOutputs())
- || FAILED(hr = CreateOutputs(pAsyncReader))) {
+ || FAILED(hr = CreateOutputs(pAsyncReader)))
+ {
m_fn = "";
return hr;
}
+ if (BuildChapters (pszFileName, Items, Chapters))
+ {
+ POSITION pos = Chapters.GetHeadPosition();
+ int i = 1;
+ while(pos)
+ {
+ CString str;
+ CHdmvClipInfo::PlaylistChapter& chap = Chapters.GetNext(pos);
+ if (chap.m_nMarkType == CHdmvClipInfo::PlaylistMarkType::EntryMark)
+ {
+ str.Format (_T("Chapter %d"), i);
+ ChapAppend (chap.m_rtTimestamp, str);
+ i++;
+ }
+ }
+ }
+
ChapSort();
m_pSyncReader = pAsyncReader;
|