- Main Page
- Namespaces
- Classes
- Files
- Directories

- File List
- File Members

# 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 };