video analysis2.0拆分,ffmpeg封装go接口库
chenshijun
2019-12-03 f29f269d999fc4bb8a9bfa85629f08b89971a2ef
csrc/thirdparty/gb28181/include/librtsp.h
@@ -2,43 +2,43 @@
#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   //初始化端口失败
#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
   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,   //历史视频下载
   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 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
@@ -46,20 +46,20 @@
#define   GB_VIDEO_STREAM_3GP      4   // 3GP
#define   GB_VIDEO_STREAM_H265   5   //H265
// 码流回调帧数据类型 I帧 P帧  目前只判断是否为I帧
// 码流回调帧数据类型 I帧 P帧  目前只判断是否为I帧
#define GB_VIDEO_FRAME_I      1
#define GB_VIDEO_FRAME_P      2
////////////////////////////////////////////////////////////////////////////////
// 函数名:码流回调函数
// 描述:
// 参数:datatype:码流格式数据类型(H264 H265等) frametype:帧类型(I帧 P帧)
//   datalen:长度 data:码流数据  userdata:用户指针
// 函数名:码流回调函数
// 描述:
// 参数:datatype:码流格式数据类型(H264 H265等) frametype:帧类型(I帧 P帧)
//   datalen:长度 data:码流数据  userdata:用户指针
//
// 返回值:会话句柄
//  。
// 说明:
//  保留原模块接口。
// 返回值:会话句柄
//  。
// 说明:
//  保留原模块接口。
////////////////////////////////////////////////////////////////////////////////
typedef void (*PlayCallBack2)(int datatype, int frametype, unsigned char *data, unsigned int datalen, long userdata);
@@ -68,41 +68,41 @@
#endif
////////////////////////////////////////////////////////////////////////////////
// 函数名:RTSPSTREAM_Open
// 描述:设置回调函数。
// 参数:rtsp地址、 码流回调函数、用户指针
// 函数名:RTSPSTREAM_Open
// 描述:设置回调函数。
// 参数:rtsp地址、 码流回调函数、用户指针
//
//
// 返回值:会话句柄
//  。
// 说明:
//  保留原模块接口。
// 返回值:会话句柄
//  。
// 说明:
//  保留原模块接口。
////////////////////////////////////////////////////////////////////////////////
long RTSPSTREAM_Open(const char *rtspurl, PlayCallBack2 streamcallback, long userdata);
////////////////////////////////////////////////////////////////////////////////
// 函数名:RTSPSTREAM_Contrl
// 描述:设置回调函数。
// 参数:会话句柄, 控制类型, 控制参数
// 函数名:RTSPSTREAM_Contrl
// 描述:设置回调函数。
// 参数:会话句柄, 控制类型, 控制参数
// 
//
// 返回值:
//  。
// 说明:
//  保留原模块接口。
// 返回值:
//  。
// 说明:
//  保留原模块接口。
////////////////////////////////////////////////////////////////////////////////
long RTSPSTREAM_Contrl(long handle, int ctrltype, double ctrlparam);
////////////////////////////////////////////////////////////////////////////////
// 函数名:RTSPSTREAM_Close
// 描述:设置回调函数。
// 参数:会话句柄
// 函数名:RTSPSTREAM_Close
// 描述:设置回调函数。
// 参数:会话句柄
//
//
// 返回值:
//  。
// 说明:
//  保留原模块接口。
// 返回值:
//  。
// 说明:
//  保留原模块接口。
////////////////////////////////////////////////////////////////////////////////
long RTSPSTREAM_Close(long handle);