2. 基础功能库接口概览

  本节用于概览基础功能库的接口,以便有一个整体上的了解。

  通过概览你会发现,只需要实现极少的一些接口,就可以使设备接入到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 简易命令接口