www.pudn.com > filterasfmuxer_2008_01_23.rar > CASFMuxer.h
// // CASFMuxer.h // /** ** Copyright (C) 2005 EnjoyView Inc., all rights reserved. ** Your View, Our Passion. Just Enjoy It! ** ** http://spaces.msn.com/members/jemylu ** **/ /*************************************************************************/ #ifndef __H_CASFMuxer__ #define __H_CASFMuxer__ const WORD cAudioStreamNum = 1;//6; const WORD cVideoStreamNum = 2;//8; //Harley 2007.07.05 #include#include "defines.h" #pragma warning(disable:4268) #include class CFilterASFMuxer; class CASFMuxer { public: CASFMuxer(CFilterASFMuxer * inFilter); ~CASFMuxer(); HRESULT SetDestFile(LPCOLESTR pFile); HRESULT GetDestFile(LPOLESTR * ppFile); HRESULT StartStreaming(void); HRESULT StopStreaming(void); HRESULT ReceiveAudio(IMediaSample * pSample); HRESULT ReceiveVideo(IMediaSample * pSample); private: HRESULT CreateProfile(void); HRESULT CreateWriter(void); HRESULT ConfigWriter(void); HRESULT WriteHeader(const WCHAR * pwszName, WCHAR * pValue); DWORD GetVideoBitrate(WM_MEDIA_TYPE& inMediaType); BOOL IsRawMediaType(WM_MEDIA_TYPE& inMediaType); private: CCritSec mSyncMux; CFilterASFMuxer * mFilter; WCHAR mDestFile[MAX_PATH]; IWMProfileManager * mProfileManager; IWMProfile * mProfile; IWMWriter* mWriter; IWMHeaderInfo* mIHeaderInfo; IWMWriterAdvanced* mIWriterAdvanced; IWMWriterAdvanced3* mIWriterAdvanced3; // Current stream time REFERENCE_TIME mAudioTime; REFERENCE_TIME mVideoTime; #ifdef _DEBUG FILE * m_fpDump; void DbgDumpStatistics(WORD inStreamNum); #endif // _DEBUG }; #endif // __H_CASFMuxer__