CMMLRawSourceFilter.h

Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include <string>
00004 #include <map>
00005 #include <libCMMLParse/libCMMLParse.h>
00006 #include <libCMMLParse/CMMLParser.h>
00007 #include <libTemporalURI/C_TimeStamp.h>
00008 #include "CMMLRawSourcePin.h"
00009 using namespace std;
00010 
00011 class CMMLRawSourcePin;
00012 
00013 class CMMLRawSourceFilter
00014         :       public CBaseFilter
00015         ,       public CAMThread
00016         ,       public IFileSourceFilter
00017         ,       public IAMFilterMiscFlags
00018 {
00019 public:
00020 
00021         friend class CMMLRawSourcePin;
00022 
00023         enum eThreadCommands {
00024                 THREAD_EXIT = 0,
00025                 THREAD_PAUSE = 1,
00026                 THREAD_RUN = 2
00027         };
00028         
00029 
00030         DECLARE_IUNKNOWN
00031         STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
00032 
00033         CMMLRawSourceFilter(void);
00034         virtual ~CMMLRawSourceFilter(void);
00035 
00036         static CUnknown* WINAPI CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr);
00037 
00038         //IBaseFilter Pure Virtuals
00039         virtual int GetPinCount();
00040         virtual CBasePin* GetPin(int inPinNo);
00041 
00042         //IAMFilterMiscFlags Interface
00043         ULONG STDMETHODCALLTYPE GetMiscFlags(void);
00044 
00045         //IFileSource Interface
00046         virtual STDMETHODIMP GetCurFile(LPOLESTR* outFileName, AM_MEDIA_TYPE* outMediaType);
00047         virtual STDMETHODIMP Load(LPCOLESTR inFileName, const AM_MEDIA_TYPE* inMediaType);
00048 
00049         //CAMThread
00050         virtual DWORD ThreadProc(void);
00051 
00052 
00053         STDMETHODIMP Run(REFERENCE_TIME tStart);
00054         STDMETHODIMP Pause(void);
00055         STDMETHODIMP Stop(void);
00056 
00057 protected:
00058         virtual HRESULT DataProcessLoop();
00059 
00060 
00061         CMMLRawSourcePin* mCMMLSourcePin;
00062         CMMLParser mCMMLParser;
00063 
00064         C_CMMLDoc* mCMMLDoc;
00065         wstring mFileName;
00066 
00067 
00068         typedef map<wstring, __int64> tTrackMap;
00069 
00070         tTrackMap mTrackMap;
00071 
00072         long mUptoTag;
00073 };

Generated on Tue Feb 15 14:54:12 2005 for oggdsf by  doxygen 1.3.9