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