EasyStreamClient对接海康流媒体V4.X—SDK结构体定义说明
【摘要】 我们前期通过EasyStreamClient对接海康流媒体V4.X实现了无插件播放,在之前的博文中,我们也分享了SDK对接的关键函数以及错误码定义,本文我们分享一下对接海康流媒体V4.X SDK 结构体的定义。
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;
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)