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:
authorCasimir666 <casimir666@users.sourceforge.net>2011-01-12 22:34:20 +0300
committerCasimir666 <casimir666@users.sourceforge.net>2011-01-12 22:34:20 +0300
commit6b81948e4bd7f65ed23dfab5b89c6b1ec495098f (patch)
tree0ecf965e2307d48b8ca76a5d6dd81f0ecfe422a4 /src/filters/parser/BaseSplitter/BaseSplitter.cpp
parente6cc38b87e196b67c87ad7592322d170abff4a54 (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.cpp28
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;