API说明
API接口
所有API接口定义均位于RtpAvComSdk.h文件中。
1、系统环境初始化,仅需调用一次
void RtpAvCom_Enviroment_Init(const char * outputPath, int outputLevel)
参数:
@param: outputPath:日志文件输出的目录,若目录不存在,SDK将自动创建,支持相对路径或绝对路径。日志对于问题定位非常重要,建议开启。
@param: outputLevel:日志输出的级别,只有等于或者高于该级别的日志会输出到文件,日志级别有: DEBUG、INFO、WARNING、ERROR、ALARM、FATAL、NONE,当指定为NONE时,将不会生成日志文件。
2、系统退出时调用一次反初始化
void RtpAvCom_Enviroment_Free ()
3、创建SDK对象
void* RtpAvCom_Create();
参数:
返回值:对象指针,返回NULL表示失败。
4、销毁SDK对象
void RtpAvCom_Delete(void** ppRtp_avcom);
参数:
@ ppRtp_avcom,模块指针的指针
说明:使用者应该做好与其他API之间的互斥保护
返回值:无
5、启动模块
BOOL RtpAvCom_Start(void* pRtp_avcom, FEC_REDUN_METHOD eRedunMethod,
unsigned int unRedunRatio,
unsigned int unFecGroupSize,
SendExterCallBackFunc pfVideoSendCallBack,
SendExterCallBackFunc pfAudioSendCallBack,
void *pObjectSend,
RecvDataCallBackFunc pfVideoRecCallBack,
RecvDataCallBackFunc pfAudioRecCallBack,
void *pObjectRecv);
参数:
@param pRtp_avcom: 模块指针
@param eRedunMethod: FEC冗余度类型:动态或者固定(服务器下行到客户端的链路可以采用动态FEC冗余度以节省带宽,具体见文档)
@param unFecGroupSize: FEC采用的GROUP大小(当开启动态Group功能时,本值用于指定最小Group)
@param unRedunRatio: FEC冗余度百分比,如:20, 30, 40, 50,范围[0~100];当冗余度类型为固定时,本值为0时即关闭FEC;当冗余度类型为动态时,本值为冗余度初始值,后续随网络调整。动态冗余度的上下限由RtpAvCom_SetVideoAutoRedunMinMax指定。
@param pfVideoSendCallBack: 本模块FEC编码处理后的输出回调接口,用户可以在该接口内实现自己的发送(RTP、UDP等)
@param pfAudioSendCallBack: 本模块FEC编码处理后的输出回调接口,用户可以在该接口内实现自己的发送(RTP、UDP等)
@param pObjectSend: 上述两个回调函数特定形参,因回调函数为static类型,本形参一般为对象指针,方便回调函数内访问成员变量,避免使用全局变量
@param pfVideoRecCallBack: FEC-QOS解码处理后的数据通过本回调函数送出
@param pfAudioRecCallBack: FEC-QOS解码处理后的数据通过本回调函数送出
@param pObjectRecv: 上述两个回调函数特定形参,因回调函数为static类型,本形参一般为对象指针,方便回调函数内访问成员变量,避免使用全局变量
返回值:TRUE成功,FALSE失败
6、停用模块
void RtpAvCom_Stop(void* pRtp_avcom);
参数:
@ ppRtp_avcom,模块指针的指针
返回值:无
7、传入待FEC编码处理的音频数据
BOOL RtpAvCom_SendAudioData(void* pRtp_avcom, unsigned char *byBuf, int nLen, unsigned int unPts);
@param pRtp_avcom: 模块指针
@param byBuf: 数据存放地址
@param nLen: 数据长度
@param unPts: 时间戳
@return: TRUE成功,FALSE失败
8、传入待FEC编码处理的一帧视频数据
BOOL RtpAvCom_SendVideoData(void* pRtp_avcom, unsigned char *byBuf, int nLen, unsigned int unPts);
@param pRtp_avcom: 模块指针
@param byBuf: 数据存放地址
@param nLen: 数据长度
@param unPts: 时间戳
@return: TRUE成功,FALSE失败
::: caution
一次传入一帧视频码流数据,内部自动拆分发送,接收端内部自动拼接后送出。
:::
9、传入来自远端的待FEC解码处理的音频数据
BOOL RtpAvCom_PutAudioData(void* pRtp_avcom, unsigned char *byBuf, int nLen);
@param pRtp_avcom: 模块指针
@param byBuf: 数据存放地址
@param nLen: 数据长度
@return: TRUE成功,FALSE失败
10、传入来自远端的待FEC解码处理的视频数据
BOOL RtpAvCom_PutVideoData(void* pRtp_avcom, unsigned char *byBuf, int nLen);
@param pRtp_avcom: 模块指针
@param byBuf: 数据存放地址
@param nLen: 数据长度
@return: TRUE成功,FALSE失败
最后修改时间: 1 年前