#if !defined(__LIB_RTSP_H__) #define __LIB_RTSP_H__ #define RTSP_ERR_OK 0 //³É¹¦ //´íÎóÂë #define RTSP_ERR_PARAM -1001 //²ÎÊý´íÎó #define RTSP_ERR_TIMEOUT -1002 //³¬Ê± #define RTSP_ERR_OPTIONS -1003 //options ÇëÇóʧ°Ü #define RTSP_ERR_DESCRIBE -1004 //describeÇëÇóʧ°Ü #define RTSP_ERR_SETUP -1005 //setupÇëÇóʧ°Ü #define RTSP_ERR_PLAY -1006 //playÇëÇóʧ°Ü #define RTSP_ERR_PAUSE -1007 //pauseÇëÇóʧ°Ü #define RTSP_ERR_TEARDOWN -1008 //teardownÇëÇóʧ°Ü #define RTSP_ERR_NO_MEMORY -1009 //ÉêÇëÄÚ´æÊ§°Ü #define RTSP_ERR_CONNECT -1010 //connectʧ°Ü #define RTSP_ERR_INITPORT -1011 //³õʼ»¯¶Ë¿Úʧ°Ü //ÂëÁ÷´«Ê䷽ʽ typedef enum { E_STREAM_TRANS_UDP = 1, //UDP´«ÊäÂëÁ÷ E_STREAM_TRANS_TCPACTIVE = 2, //GB28181 TCPÖ÷¶¯ ÂëÁ÷´«Ê䷽ʽ TcpClient E_STREAM_TRANS_TCPPASSIVE = 3, //GB28181 TCP±»¶¯ ÂëÁ÷´«Ê䷽ʽ TcpServer }StreamTransType_E; //ÊÓÆµÇëÇóÀàÐÍ typedef enum { E_VIDEO_REQUEST_REALPLAY = 1, //ÇëÇóʵʱÊÓÆµ E_VIDEO_REQUEST_PLAYBACK = 2, //ÇëÇóÀúÊ·ÊÓÆµ E_VIDEO_REQUEST_DOWNLOAD = 3, //ÀúÊ·ÊÓÆµÏÂÔØ }VideoRequestType_E; #define HIS_VIDEO_CTRL_PLAY 1 //µã²¥²¥·Å¿ØÖÆ #define HIS_VIDEO_CTRL_FAST 2 //µã²¥¿ì·Å¿ØÖÆ ²ÎÊý·¶Î§:1-32±¶ #define HIS_VIDEO_CTRL_SLOW 3 //µã²¥Âý·Å¿ØÖÆ ²ÎÊý·¶Î§:1-32±¶ #define HIS_VIDEO_CTRL_PAUSE 4 //µã²¥ÔÝÍ£¿ØÖÆ #define HIS_VIDEO_CTRL_JUMP 5 //µã²¥Ìø×ª¿ØÖÆ ²ÎÊý·¶Î§:´Ó¿ªÊ¼¼ÆËãÌø×ªµÄʱ¼ä (ʱ¼äµ¥Î»:Ãë) // ÂëÁ÷»Øµ÷µÄÊý¾ÝÀàÐÍ #define GB_VIDEO_STREAM_H264 0 #define GB_VIDEO_STREAM_MPEG2 1 // MPEG4 #define GB_VIDEO_STREAM_MPEG4 2 // MPEG4 #define GB_VIDEO_STREAM_SVAC 3 // SVAC #define GB_VIDEO_STREAM_3GP 4 // 3GP #define GB_VIDEO_STREAM_H265 5 //H265 // ÂëÁ÷»Øµ÷Ö¡Êý¾ÝÀàÐÍ IÖ¡ PÖ¡ ĿǰֻÅжÏÊÇ·ñΪIÖ¡ #define GB_VIDEO_FRAME_I 1 #define GB_VIDEO_FRAME_P 2 //////////////////////////////////////////////////////////////////////////////// // º¯ÊýÃû£ºÂëÁ÷»Øµ÷º¯Êý // ÃèÊö£º // ²ÎÊý£ºdatatype:ÂëÁ÷¸ñʽÊý¾ÝÀàÐÍ(H264 H265µÈ) frametype:Ö¡ÀàÐÍ(IÖ¡ PÖ¡) // datalen£º³¤¶È data£ºÂëÁ÷Êý¾Ý userdata£ºÓû§Ö¸Õë // // ·µ»ØÖµ£º»á»°¾ä±ú // ¡£ // ˵Ã÷£º // ±£ÁôÔ­Ä£¿é½Ó¿Ú¡£ //////////////////////////////////////////////////////////////////////////////// typedef void (*PlayCallBack2)(int datatype, int frametype, unsigned char *data, unsigned int datalen, long userdata); #ifdef __cplusplus extern "C"{ #endif //////////////////////////////////////////////////////////////////////////////// // º¯ÊýÃû£ºRTSPSTREAM_Open // ÃèÊö£ºÉèÖûص÷º¯Êý¡£ // ²ÎÊý£ºrtspµØÖ·¡¢ ÂëÁ÷»Øµ÷º¯Êý¡¢Óû§Ö¸Õë // // // ·µ»ØÖµ£º»á»°¾ä±ú // ¡£ // ˵Ã÷£º // ±£ÁôÔ­Ä£¿é½Ó¿Ú¡£ //////////////////////////////////////////////////////////////////////////////// long RTSPSTREAM_Open(const char *rtspurl, PlayCallBack2 streamcallback, long userdata); //////////////////////////////////////////////////////////////////////////////// // º¯ÊýÃû£ºRTSPSTREAM_Contrl // ÃèÊö£ºÉèÖûص÷º¯Êý¡£ // ²ÎÊý£º»á»°¾ä±ú£¬ ¿ØÖÆÀàÐÍ£¬ ¿ØÖƲÎÊý // // // ·µ»ØÖµ£º // ¡£ // ˵Ã÷£º // ±£ÁôÔ­Ä£¿é½Ó¿Ú¡£ //////////////////////////////////////////////////////////////////////////////// long RTSPSTREAM_Contrl(long handle, int ctrltype, double ctrlparam); //////////////////////////////////////////////////////////////////////////////// // º¯ÊýÃû£ºRTSPSTREAM_Close // ÃèÊö£ºÉèÖûص÷º¯Êý¡£ // ²ÎÊý£º»á»°¾ä±ú // // // ·µ»ØÖµ£º // ¡£ // ˵Ã÷£º // ±£ÁôÔ­Ä£¿é½Ó¿Ú¡£ //////////////////////////////////////////////////////////////////////////////// long RTSPSTREAM_Close(long handle); #ifdef __cplusplus } #endif #endif