www.pudn.com > myseelite_2007_06_28.zip > CaptureServer.h
/* * Openmysee * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #ifndef __CAPTURE_SERVER_H_ #define __CAPTURE_SERVER_H_ #include "TE_Socket.h" #include "LogMgr.h" #include "BufferMgr.h" #include "ConfigFile.h" #include "SPClient.h" #include "ZZLFileWriter.h" #include#define MAX_AVDELAY 1000000 typedef struct _SAMPLEDATA { SampleHeader samplehr; BYTE *pData; } SAMPLEDATA; // { Declaration of ConfigData class ConfigData { public: ConfigData() : canLogin(FALSE) {}; list spAddress; // SP地址列表 string chnlStr; // 频道名 string savePath; // 保存路径 int reconnectSecond; // 重新连接SP的间隔时间 int userID; // 用户ID string password; // 用户密码 BOOL canLogin; // 配置文件读取完毕,可以登录SP了 }; // Declaration of ConfigData } // { Declaration of CaptureServer class CaptureServer { public: CaptureServer(); CaptureServer(const CaptureServer&); public: virtual ~CaptureServer(); //must public BOOL Init(); void Stop(); BOOL SetFormatData(TVMEDIATYPESECTION&, BYTE*, BOOL isAudio); BOOL GetFormatData(TVMEDIATYPESECTION&, PBYTE&, BOOL isAudio); void SetAudioOrVideoOnly(BOOL isAudio); BOOL GetIsAudioOnly() {return (audioData != NULL && videoData == NULL);}; BOOL PutSample(const SampleHeader& header, BYTE* pData); float GetSpeedInKBPS(); LONGLONG GetTotalBytes() {return totalBytes;}; vector logList; // 日志列表 vector bufferList; // 缓冲区列表 vector clientList; // SP的连接列表 ConfigData cfgData; // 配置数据 ZZLFileWriter m_zzlWriter; // 生成zzl文件 HWND parentWindow; // 窗口的句柄,用于弹出MessageBox int passwordStatus; // if 2 initilize, if 1 right, if 0 wrong; // 判断是否结束 BOOL m_bTransDataEnd; BOOL m_bIsOnlyOnePin; protected: BOOL LoadConfigFile(); private: // 视音频数据信息 TVMEDIATYPESECTION videoStruct; BYTE* videoData; TVMEDIATYPESECTION audioStruct; BYTE* audioData; // 计算速度 LONGLONG totalBytes; SYSTEMTIME startTime; // 当前音视频Sample时间 LONGLONG m_llAudioTime; LONGLONG m_llVideoTime; // 音视频Sample同步缓冲队列 std::queue m_AudioSamQueue; std::queue m_VideoSamQueue; // Sample队列同步锁 CRITICAL_SECTION m_SamQueueCSec; }; // Declaration of CaptureServer } #endif