EasyStreamClient是一套非常稳定、易用、支持重连的StreamClient工具,以SDK形式提供, 接口调用非常简单。我们前期通过EasyStreamClient对接海康流媒体V4.X实现了无插件播放,在之前的博文中,我们也分享了SDK对接的关键函数以及错误码定义,本文我们分享一下对接海康流媒体V4.X SDK 结构体的定义。

(1)消息回调说明:

/**************************/
/*消息回调函数参数定义*/
/**********************************************
sessionhandle 会话句柄
userdata 用户自定义数据
errCode 错误码
param1 错误信息结构体(实现参见示例代码)
param2 暂时未定义
param3 暂时未定义
param4 暂时未定义
成功返回0 失败返回-1
************************************************/
typedef int (CALLBACK *pStreamClientMsgFunc)(int sessionhandle, void* userdata, int errCode,
void* param1, void* param2, void* param3, void* param4);

(2)原始数据回调说明:

/**************************/
/*原始数据(从流媒体服务器接收的数据)回调函数参数定义*/
/***********************************************
sessionhandle 会话句柄
userdata 用户自定义数据
pdata 码 流 数 据( STREAM_HEAD 系 统头 数 据 , STREAM_DATA 流 数 据,
STREAM_PLAYBACK_FINISH 回放、下载或倒放结束)
datalen 码流数据长度
成功返回0 失败返回-1
***********************************************/
typedef int (CALLBACK *pStreamClientDataFunc)(int sessionhandle, void* userdata,
int datatype, void* pdata, int datalen);

(3)PS 数据回调说明:

/*PS封装数据回调函数参数定义,当接收的码流支持转封装成PS,此数据回调会有数据回调。
/*当不支持PS转封装时,回调原始码流
/***********************************************
sessionhandle 会话句柄
userdata 用户自定义数据
pdata 码 流 数 据( STREAM_HEAD 系 统头 数 据 , STREAM_DATA 流 数 据,
STREAM_PLAYBACK_FINISH 回放、下载或倒放结束)
datalen 码流数据长度
成功返回0 失败返回-1
***********************************************/
typedef int (CALLBACK *pStreamClientPsDataFunc)(int sessionhandle, void* userdata,
int datatype, void* pdata, int datalen);

(4)绝对时间结构体说明:

/** @struct _ABS_TIME_
* @brief 绝对时间回放时间参数结构体。
*
*/
typedef struct _ABS_TIME_
{
unsigned int dwYear; ///< 年
unsigned int dwMonth; ///< 月
unsigned int dwDay; ///< 日
unsigned int dwHour; ///< 时
unsigned int dwMintes; ///< 分
unsigned int dwSeconds; ///< 秒
}ABS_TIME, *pABS_TIME;

(5)消息回调中错误结构体说明:

/** @struct errorInfo_platform
* @brief 错误信息结构体
*
*/
typedef struct errorInfo_platform
{
char moduleID[32]; ///< 模块ID
char businessID[32]; ///< 业务ID
INT64 timestamp; ///< 时间戳
int errorCode; ///< 错误码
char errorMsg[32]; ///< 错误描述
}ERRORINFO_PLATFORM,*PERRORINFO_PLATFORM;
/** @struct errorStackInfo_platform
* @brief 错误堆栈信息结构体
*
*/
typedef struct errorStackInfo_platform
{
int* count; ///< 当前错误堆栈深度
PERRORINFO_PLATFORM perrorInfo; ///< 错误堆栈信息
}ERRORSTACKINFO_PLATFORM,*PERRORSTACKINFO_PLATFORM;