zhangzengfei
2022-07-20 c90c3e794bdd95127d0c34ff1d9e8759d18a0445
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#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