#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
|
|