2. 基础功能库接口概览
- 2.1. 初始化部分接口
- 2.2. 系统设置类接口
- 2.3. 网络配置接口
- 2.4. 媒体参数相关接口
- 2.5. 实时流媒体接口
- 2.5. 音频对讲接口
- 2.6. 云台及镜头控制接口
- 2.7. 透明通道接口
本节用于概览基础功能库的接口,以便有一个整体上的了解。
通过概览你会发现,只需要实现极少的一些接口,就可以使设备接入到PPVIEW Cloud云平台,并具备云平台所提供的所有功能。
接口列表中,用粗体标记了必须要实现的接口,这些接口都是 vvdev 运行所必需的;没有用粗体标记的接口可以实现也可以不实现,不实现时,vvdev
将不具备与此接口相关的功能。
注:基础功能库中所定义的接口,都是由
vvdev
来主动调用的,其调用方向是:vvdev
->libvvdev.so
。基础功能库主动调用vvdev
的接口仅有 plugin_set_callback 中定义的回调。
2.1. 初始化部分接口
这部分的接口主要用于初始化、反初始化、创建实例等,是基本功能库加载时和退出时需要调用的接口。
这部分接口是基础接口,必须实现:
接口名 | 说明 |
---|---|
plugin_init | 初始化 |
plugin_uninit | 反初始化 |
plugin_create | 创建实例 |
plugin_release | 销毁实例 |
plugin_set_callback | 设置回调 |
plugin_get_caps | 获取设备能力 |
其中plugin_set_callback
是一个比较重要的接口,通过此接口,vvdev 将回调函数传递给基础功能库,基础功能库通过回调函数,将必要的信息传递给 vvdev 这一层。比如设备上的按键事件、移动侦测事件,采集到的数据等。
流程:
st=>start: 开始
e=>end: 结束
init=>operation: plugin_init:>libt2u_c_api.html
create=>operation: plugin_create
set_callback=>operation: plugin_set_callback
get_caps=>operation: plugin_get_caps
main=>operation: 主循环
release=>operation: plugin_release
uninit=>operation: plugin_uninit
st->init->create->set_callback->get_caps->main->release->uninit->e
2.2. 系统设置类接口
这部分主要是与系统相关的一些接口,用于恢复出厂设置,升级、重启、获取通道信息等。
这些接口中必须实现的有:
接口名 | 说明 |
---|---|
plugin_system_get_firmware_ver | 获取设备固件版本号 |
plugin_system_get_model | 获取设备型号 |
plugin_system_reboot | 重启设备 |
plugin_system_get_channel_count | 得到设备通道数 |
plugin_system_get_channel_state | 得到设备通道状态 |
plugin_system_get_time_zone | 取设备时区 |
plugin_system_set_time_zone | 设置设备时区 |
plugin_system_get_config_storage_path | 取可以存储配置文件的路径 |
plugin_system_factory_default | 恢复出厂设置 |
如果要实现本地录像功能,则需要实现:
接口名 | 说明 |
---|---|
plugin_system_get_storage_count | 获取设备存储界质数量 |
plugin_system_get_storage_info | 获取设备存储界质信息 |
plugin_system_format_storage | 格式化存储界质 |
plugin_system_get_format_progress | 获取格式化进度 |
如果要实现远程在线升级固件功能,则需要实现:
接口名 | 说明 |
---|---|
plugin_system_get_firmware_tmp_name | 获取下载升级固件的临时文件名,即从服务器上下载的固件升级包所保存的临时文件名 |
plugin_system_start_upgrade_firmware | 开始升级过程 |
plugin_system_get_upgrade_firmware_progress | 取固件升级的进度百分比 |
如果要实现多语言语音提示功能(默认为中文),则需要实现:
接口名 | 说明 |
---|---|
plugin_system_get_language | 获取语言版本 |
plugin_system_set_language | 设置语言版本 |
如果实现 OSD 设置功能,则需要实现:
接口名 | 说明 |
---|---|
plugin_system_set_osd | 设置OSD |
plugin_system_set_osd_show | 设置OSD是否显示 |
2.3. 网络配置接口
这部分主要是与网络配置相关的一些接口,用于获取和配置网络参数。
这些接口都是必须要实现的,有:
接口名 | 说明 |
---|---|
plugin_network_get_netif_count | 获得网卡个数 |
plugin_network_get_netif_settings | 获得网卡参数 |
plugin_network_set_netif_settings | 设置网卡参数 |
2.4. 媒体参数相关接口
这部分主要是与获取和设置音视频媒体参数的一些接口,用于抓图、获取音视频流等。
这些接口中,如果要实现实时音视频播放,则必须实现:
接口名 | 说明 |
---|---|
plugin_media_get_video_encoder_settings | 获取码流当前视频配置信息 |
plugin_media_get_stream_count | 获取通道所能支持的最大码流数 |
plugin_media_get_audio_encoder_settings | 获取码流当前音频配置信息 |
如果要实现码流设置功能,则需要实现:
接口名 | 说明 |
---|---|
plugin_media_get_supports_video_codecs | 获取支持的编码器列表 |
plugin_media_get_supports_video_resolutions | 获取支持的分辨率列表 |
plugin_media_get_supports_audio_codecs | 获得支持的音频编码器列表 |
plugin_media_set_video_encoder_settings | 设置码流视频配置信息 |
plugin_media_set_audio_encoder_settings | 设置码流音频配置信息 |
如果要实现图像参数设置功能,则需要实现:
接口名 | 说明 |
---|---|
plugin_media_get_image_params | 取视频图像参数 |
plugin_media_set_image_params | 设置视频图像参数 |
plugin_media_save_image_params | 保存视频图像参数 |
如果要实现图像镜像方式(即吊装模式)设置功能,则需要实现:
接口名 | 说明 |
---|---|
plugin_media_get_image_mirror | 获取视频镜像方式 |
plugin_media_set_image_mirror | 设置视频镜像方式 |
2.5. 实时流媒体接口
这部分接口主要用于抓图,实时音视频媒体流获取。
这些接口有:
接口名 | 说明 |
---|---|
plugin_media_snapshot | 抓图 |
plugin_live_media_set_callback | 设置实时媒体流回调 |
plugin_live_media_start | 开始一路实时媒体流 |
plugin_live_media_stop | 停止一路实时媒体流 |
plugin_live_media_force_iframe | 强制主帧 |
2.5. 音频对讲接口
这部分接口主要用于抓图,实时音视频媒体流获取。
如果设备不需要对讲功能,则可以不实现这些接口。
这些接口有:
接口名 | 说明 |
---|---|
plugin_voicetalk_open | 开启对讲过程 |
plugin_voicetalk_close | 关闭对讲过程 |
plugin_voicetalk_read | 读取设备端音频(设备端->客户端) |
plugin_voicetalk_write | 写入设备端音频(客户端->设备端) |
2.6. 云台及镜头控制接口
这部分接口主要用于云镜控制。
如果设备不需要云镜控制功能,接口可不实现。
这些接口有:
接口名 | 说明 |
---|---|
plugin_ptz_get_caps | 获取通道云镜能力 |
plugin_ptz_move | 云台移动和镜头缩放 |
plugin_ptz_get_preset_count | 取预置位总数 |
plugin_ptz_set_preset | 设置预置位 |
plugin_ptz_goto_preset | 移动到预置位 |
plugin_ptz_remove_preset | 删除预置位 |
plugin_ptz_set_home | 设置当前位置为看守位 |
plugin_ptz_goto_home | 移动到看守位 |
plugin_ptz_remove_home | 删除看守位 |
plugin_ptz_pan_scan | 左右扫描 |
plugin_ptz_tilt_scan | 垂直扫描 |
plugin_ptz_pan_tilt_scan | 水平及垂直扫描 |
plugin_ptz_stop | 云镜停止 |
2.7. 透明通道接口
这部分接口主要用于硬件开发商自定义数据交互。当已有的 SDK 中客户端与设备端交互的接口无法满足需求时,实现这部分的接口,配合客户端中的透明通道接口,实现自定义的数据交互。
如设备不需要透明通道功能,可不实现这些接口。
这些接口有:
接口名 | 说明 |
---|---|
plugin_trchl_open | 开启一个数据通明传输通道 |
plugin_trchl_close | 关闭一个透明传输通道 |
plugin_trchl_set_send_callback | 设置透明通道数据发送回调 |
plugin_trchl_recv | 将客户端的透明通道数据传送给设备 |
plugin_customer_cmd | 简易命令接口 |