DSMSplitterFile.h

00001 #pragma once
00002 
00003 #include "..\BaseSplitter\BaseSplitter.h"
00004 #include "..\..\..\..\include\dsm\dsm.h"
00005 #include "..\..\..\DSUtil\DSMPropertyBag.h"
00006 
00007 class CDSMSplitterFile : public CBaseSplitterFile
00008 {
00009         HRESULT Init(IDSMResourceBagImpl& res, IDSMChapterBagImpl& chap);
00010 
00011 public:
00012         CDSMSplitterFile(IAsyncReader* pReader, HRESULT& hr, IDSMResourceBagImpl& res, IDSMChapterBagImpl& chap);
00013 
00014         CAtlMap<BYTE, CMediaType> m_mts;
00015         REFERENCE_TIME m_rtFirst, m_rtDuration;
00016 
00017         struct SyncPoint {REFERENCE_TIME rt; __int64 fp;};
00018         CArray<SyncPoint> m_sps;
00019 
00020         typedef CAtlMap<CStringA, CStringW, CStringElementTraits<CStringA>, CStringElementTraits<CStringW> > CStreamInfoMap;
00021         CStreamInfoMap m_fim;
00022         CAtlMap<BYTE, CStreamInfoMap> m_sim;
00023 
00024         bool Sync(dsmp_t& type, UINT64& len, __int64 limit = 65536);
00025         bool Sync(UINT64& syncpos, dsmp_t& type, UINT64& len, __int64 limit = 65536);
00026         bool Read(__int64 len, BYTE& id, CMediaType& mt);
00027         bool Read(__int64 len, Packet* p, bool fData = true);
00028         bool Read(__int64 len, CArray<SyncPoint>& sps);
00029         bool Read(__int64 len, CStreamInfoMap& im);
00030         bool Read(__int64 len, IDSMResourceBagImpl& res);
00031         bool Read(__int64 len, IDSMChapterBagImpl& chap);
00032         __int64 Read(__int64 len, CStringW& str);
00033         
00034         __int64 FindSyncPoint(REFERENCE_TIME rt);
00035 };

Generated on Tue Dec 13 14:47:18 2005 for guliverkli by  doxygen 1.4.5