| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- // WmvWriter.h: interface for the WmvWriter class.
- //
- //////////////////////////////////////////////////////////////////////
- #if !defined(AFX_WMVWRITER_H__1DC92438_F088_481C_B60B_5BED8B2A9F58__INCLUDED_)
- #define AFX_WMVWRITER_H__1DC92438_F088_481C_B60B_5BED8B2A9F58__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #include "winmedia.h"
- #include <Vfw.h>
- #define _ENABLE_VBR_
- class CWmvWriter
- {
- public:
- CWmvWriter();
- virtual ~CWmvWriter();
- private://内部成员变量
- IWMProfileManager * mProfileManager;
- IWMProfile * mProfile;
- IWMWriter *m_pWriter;
- INSSBuffer *m_pVideoSample;
- INSSBuffer *m_pAudioSample;
- INSSBuffer *m_pTextSample;
- QWORD m_lStartTime;
- GUID m_guidVideoType;
- int m_height;
- int m_width;
- int m_colorbit;
- int m_nfps;
- int m_nmaxspacing;
- DWORD m_VideoInputNum;
- DWORD m_AudioInputNum;
- DWORD m_ScriptInputNum;
- //CLogFile*log;
- private: //公共调用接口
- HRESULT InitWriter(int width,int height,int nfps,int nSanplePsec,int nchannels,int nBitPerSample,
- int nmaxspacing,int nquality,int nOutBitRate, int iAudioType);
- HRESULT SetInfo(BSTR filename,int width,int height,int colorbit,int nSanplePsec,int nchannels,int nBitPerSample);
- HRESULT Start();
- HRESULT Stop();
- HRESULT ReceiveVideo(BYTE*pData,DWORD len);
- HRESULT ReceiveAudio(BYTE*pData,DWORD len);
- HRESULT ReceiveText(char*text,DWORD len);
- private://内部成员函数
- HRESULT SetSysProfile(REFGUID guid);//设置系统生成器配置
- HRESULT SetProfile(IWMProfile*pProfile);
- HRESULT ConfigAudioInput();
- HRESULT ConfigAudioInput(GUID guidSubType, WAVEFORMATEX * inWave);
- HRESULT ConfigVideoInput();
- HRESULT ConfigVideoInput(GUID guidSubType, WMVIDEOINFOHEADER * inVideo);
- HRESULT CWmvWriter::FindInputFormat(DWORD dwInput, GUID guidSubType,
- IWMInputMediaProps** ppProps, WM_MEDIA_TYPE** ppMediaType);
- HRESULT IdentifyInputsByNumber(void);
- HRESULT CreateProfile(int width,int height,int nfps,int nSanplePsec,int nchannels,int nBitPerSample,
- int nmaxspacing,int nquality,int nOutBitRate, int iAudioType);
- BOOL IsCodecAvailable(GUID inMajortype, GUID inSubtype, BYTE ** outMt);
- HRESULT GetMediaTypeDetails(IWMMediaProps * pProps, BYTE** outDetails);
- HRESULT wmCopyMediaType(WM_MEDIA_TYPE** ppmtDest, WM_MEDIA_TYPE* pmtSrc);
- QWORD GetTimeStamp();//得到当前时间戳
- HRESULT ConnectionStreamType(WCHAR * inConnectionName, GUID* outType);
- public:
- bool InitWmvWriter(char* filename,int width,int height,int colorbit,int nfps,
- int nSanplePsec,int nchannels,int nBitPerSample,int nmaxspacing,int nquality,int nOutBitRate, int iAudioType);
- bool StartWrite();
- bool End();
- bool ReceiveAudioData(BYTE*pData,DWORD len);
- bool ReceiveVideoData(BYTE*pData,DWORD len);
- };
- #endif // !defined(AFX_WMVWRITER_H__1DC92438_F088_481C_B60B_5BED8B2A9F58__INCLUDED_)
|