// // AVI File Writer // #ifndef __AVIFILEWRITER_INCLUDED__ #define __AVIFILEWRITER_INCLUDED__ #define WIN32_LEAN_AND_MEAN #include #include class CAVIWriter { public: CAVIWriter(); virtual ~CAVIWriter(); bool Open( const char* fname ); void Close(); bool IsAviRecord() { return m_pAviFile?true:false; } bool SelectVideoFormat( HWND hWnd ); void SetVideoFormat( BITMAPINFOHEADER* bih ); void SetAudioFormat( const DWORD rate, const WORD bits, const INT channels ); void SetFrameRate( const DWORD scale, const DWORD rate ); bool WriteVideo( const char* video ); bool WriteAudio( const char* audio, const int length ); bool WriteFrame( const char* video, const char* audio, const int length ); protected: private: LONG m_FrameNumber; LONG m_SampleNumber; DWORD m_FrameRate; PAVIFILE m_pAviFile; PAVISTREAM m_pVideoStream; PAVISTREAM m_pVideoStreamCompress; PAVISTREAM m_pAudioStream; AVISTREAMINFO m_VideoStreamInfo; AVISTREAMINFO m_AudioStreamInfo; AVICOMPRESSOPTIONS m_VideoOption; COMPVARS m_Compvers; BITMAPINFOHEADER* m_pVideoFormat; WAVEFORMATEX m_AudioFormat; }; #endif // !__AVIFILEWRITER_INCLUDED__