www.pudn.com > rtsp_linker.rar > rtspLinker.h
//--------------------------------------------------------------------------- #ifndef rtspLinkerH #define rtspLinkerH #include #include #include #include #include "CCircleQueue.h" //--------------------------------------------------------------------------- #if 0 #include #include inline void Debug(char *format, ...) { char buf[102400]; va_list args; va_start(args, format); vsprintf(buf, format, args); va_end(args); char str_time[128], str_date[128]; _strtime(str_time); _strdate(str_date); ofstream DebugFile("C:\\rtspLinker_Debug.log", std::ios::binary|std::ios::app); DebugFile< m_RtspCheckMap; std::list m_VideoList, m_AudioList; CRITICAL_SECTION m_csVideoListLock, m_csAudioListLock; std::set m_BufferPool; CRITICAL_SECTION m_csBufferPoolLock; int CreateSocketConnect(SOCKET *pSocket, const char *pcIP, const unsigned long ulPort); int CreateBindSocket(SOCKET *pSocket, unsigned long *pulPort); void CloseSocket(SOCKET *pSocket); int RecvResponse(SOCKET sSocket, unsigned char *pcBuf, unsigned int uiRecvSize, unsigned long ulTimeout); int RecvBufFunc(SOCKET sSocket, unsigned char *pcBuf, unsigned int uiRecvSize, unsigned long ulTimeout); int RecvOnceFunc(SOCKET sSocket, unsigned char *pcBuf, unsigned int uiRecvSize, unsigned long ulTimeout); static DWORD WINAPI MainProc(LPVOID lpParam); static DWORD WINAPI AudioProc(LPVOID lpParam); int ConnectFunc(void); int RecvDataFunc(void); int RecvAudioFunc(void); public: rtspLinker(); ~rtspLinker(); void SetLinker(char *pcIP, unsigned long ulPort); //設定 IP、Port void SetProtocol(enum PROTOCOL_TYPE eType); //設定 protocol (預設:TCP) void SetUrlPath(char *pcUrl); //設定 sdp 路徑、檔名 (預設:"") void SetAudioEnabled(bool bEnabled); //設定 是否開啟聲音 (預設:on) void SetTimeOut(unsigned long ulTimeOut); //設定 網路連線、接收 Timeout (預設:3000 msec) void SetReconnectInterval(unsigned long ulInterval); //設定 斷線重連時間間隔 (預設:5000 msec) void SetFrameBufferSize(unsigned long ulSize); //設定 緩衝 frame 張數 (預設:10) void Connect(); void Disconnect(); bool RecvVideoFrame(enum FRAME_TYPE &eType, void **ppBuf, unsigned long &ulLen); bool RecvAudioFrame(enum FRAME_TYPE &eType, void **ppBuf, unsigned long &ulLen); void ReturnFrame(void **ppBuf); }; #endif