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