00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #pragma once
00023
00024 #include <atlbase.h>
00025 #include <atlcoll.h>
00026 #include <afxtempl.h>
00027 #include "DSMSplitterFile.h"
00028 #include "..\BaseSplitter\BaseSplitter.h"
00029
00030 [uuid("0912B4DD-A30A-4568-B590-7179EBB420EC")]
00031 class CDSMSplitterFilter : public CBaseSplitterFilter
00032 {
00033 protected:
00034 CAutoPtr<CDSMSplitterFile> m_pFile;
00035 HRESULT CreateOutputs(IAsyncReader* pAsyncReader);
00036
00037 bool DemuxInit();
00038 void DemuxSeek(REFERENCE_TIME rt);
00039 bool DemuxLoop();
00040
00041 public:
00042 CDSMSplitterFilter(LPUNKNOWN pUnk, HRESULT* phr);
00043 virtual ~CDSMSplitterFilter();
00044
00045
00046
00047 STDMETHODIMP_(HRESULT) GetKeyFrameCount(UINT& nKFs);
00048 STDMETHODIMP_(HRESULT) GetKeyFrames(const GUID* pFormat, REFERENCE_TIME* pKFs, UINT& nKFs);
00049 };
00050
00051 [uuid("803E8280-F3CE-4201-982C-8CD8FB512004")]
00052 class CDSMSourceFilter : public CDSMSplitterFilter
00053 {
00054 public:
00055 CDSMSourceFilter(LPUNKNOWN pUnk, HRESULT* phr);
00056 };