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