00001 #pragma once 00002 00003 #include <atlbase.h> 00004 #include <atlcoll.h> 00005 #include <afxtempl.h> 00006 #include "..\BaseSplitter\BaseSplitter.h" 00007 00008 class CDiracSplitterFile : public CBaseSplitterFile 00009 { 00010 CMediaType m_mt; 00011 REFERENCE_TIME m_rtDuration; 00012 CArray<BYTE> m_pBuff; 00013 00014 HRESULT Init(); 00015 00016 public: 00017 CDiracSplitterFile(IAsyncReader* pAsyncReader, HRESULT& hr); 00018 00019 using CBaseSplitterFile::Read; 00020 00021 bool Next(BYTE& code, __int64 len = -1); 00022 const BYTE* NextBlock(BYTE& code, int& size, int& fnum); 00023 UINT64 UnsignedGolombDecode(); 00024 00025 const CMediaType& GetMediaType() {return m_mt;} 00026 REFERENCE_TIME GetDuration() {return m_rtDuration;} 00027 };