跳到主要内容

hi_mpi_vi_get_chn_fd

hi_mpi_vi_get_chn_frame

函数功能

从指定VI通道获取的视频图像信息,图像信息主要包括:图像的宽度、高度、像素格式、时间戳以及YUV各分量的地址等等。

约束说明

  • 调用本接口前,必须先调用hi_mpi_vi_create_pipe接口创建PIPE。

  • 通道已启用且通道队列深度不为0时,才能调用本接口获取到图像。

  • 支持多次获取后再释放,但建议获取和释放接口配对使用。

  • 获取的地址信息来自模块内部使用的临时内存,因此使用完之后,必须要调用hi_mpi_vi_release_chn_frame接口释放其内存。

  • 用户可结合hi_mpi_vi_get_chn_fd接口,采用select/epoll方式等待可读图像信息,等到有可用的视频输入数据后再通过非阻塞方式使用hi_mpi_vi_get_chn_frame获取图像。

函数原型

hi_s32 hi_mpi_vi_get_chn_frame(hi_vi_pipe vi_pipe, hi_vi_chn vi_chn, hi_video_frame_info *frame_info, hi_s32 milli_sec)

参数说明

参数名输入/输出说明
vi_pipe输入PIPE号。 取值范围:[0, 8)
vi_chn输入VI通道号。 取值范围:[0, 1)
frame_info输入VI帧信息结构体。
milli_sec输入超时参数 。取值范围:
- -1:表示阻塞模式,程序一直等待,直到获取到图像才返回;
- 0:表示非阻塞模式;
- >0: 配置具体的超时时间,单位为毫秒(ms),在配置的超时时间内如果没有获取到图像,则超时返回。

返回值说明

参考资源

接口调用流程,参见视频数据获取功能

父主题: VI视频输入功能

hi_mpi_vi_release_chn_frame

函数功能

释放一帧从VI通道获取的图像。

约束说明

  • 本接口需与hi_mpi_vi_get_chn_frame接口配对使用,接口调用次数保持一致,否则返回报错。
  • 用户需先调用hi_mpi_vi_get_chn_frame接口获取frame_info,再将获取到的frame_info传入本接口,否则可能造成释放不成功。

函数原型

hi_s32 hi_mpi_vi_release_chn_frame(hi_vi_pipe vi_pipe, hi_vi_chn vi_chn, const hi_video_frame_info *frame_info)

参数说明

参数名输入/输出说明
vi_pipe输入PIPE号。 取值范围:[0, 8)
vi_chn输入VI通道号。 取值范围:[0, 1)
frame_info输入VI帧信息结构体。

返回值说明

参考资源

接口调用流程,参见视频数据获取功能

父主题: VI视频输入功能

hi_mpi_vi_get_chn_fd

函数功能

获取VI通道文件描述符 。

函数原型

hi_s32 hi_mpi_vi_get_chn_fd(hi_vi_pipe vi_pipe, hi_vi_chn vi_chn)

参数说明

参数名输入/输出说明
vi_pipe输入PIPE号。 取值范围:[0, 8)
vi_chn输入VI通道号。 取值范围:[0, 1)

返回值说明

当大于或等于0时,接口调用成功,返回对应句柄,否则表示接口调用失败。

参考资源

接口调用流程,参见视频数据获取功能

父主题: VI视频输入功能

hi_mpi_vi_set_chn_low_delay_attr

函数功能

设置VI PIPE低延时属性 。

约束说明

  • 调用本接口前,必须先调用hi_mpi_vi_create_pipe接口创建PIPE。

  • 为确保设置的低延时生效,需:

    • 调用hi_mpi_sys_bind接口绑定VI与VPSS。
    • 已开启视频防抖(DIS)、镜头畸变校正(LDC)中的任意一个功能或组合功能。

函数原型

hi_s32 hi_mpi_vi_set_chn_low_delay_attr(hi_vi_pipe vi_pipe, hi_vi_chn vi_chn, const hi_vi_low_delay_info *delay_info)

参数说明

参数名输入/输出说明
vi_pipe输入VI PIPE号。 取值范围:[0, 8)
vi_chn输入VI通道号。 取值范围:[0, 1)
delay_info输入低延时功能参数结构体指针。

返回值说明

父主题: VI视频输入功能

hi_mpi_vi_get_chn_low_delay_attr

函数功能

获取VI通道低延时属性 。

约束说明

函数原型

hi_s32 hi_mpi_vi_get_chn_low_delay_attr(hi_vi_pipe vi_pipe, hi_vi_chn vi_chn, hi_vi_low_delay_info *delay_info)

参数说明

参数名输入/输出说明
vi_pipe输入VI PIPE号。 取值范围:[0, 8)
vi_chn输入VI通道号。 取值范围:[0, 1)
delay_info输出低延时功能参数结构体指针。

返回值说明

父主题: VI视频输入功能

功能及约束说明

功能说明

叠加在视频上的OSD (On Screen Display)和遮挡在视频上的色块统称为区域。区域管理模块,用于统一管理这些区域资源,用于在视频上显示一些特定信息(如通道号、时间戳等)、或在视频中填充色块用于遮挡。

例如, 实际应用中,用户通过创建一个区域,通过调用hi_mpi_rgn_attach_to_chn接口,将该区域叠加到指定的一个或多个VPSS通道中,同时支持在每个通道中指定区域的显示属性,如位置、层次、透明度等。

基本概念

表1 概念解释

概念描述
区域类型区域类型包括以下:
- OVERLAY :视频叠加区域 ,其中区域支持位图的加载 、 背景色更新 等功能。
- OVERLAYEX :扩展视频叠加区域,功能与 OVERLAY 类似,支持位图加载、背景色更新等。
- COVER :视频遮挡区域,其中区域支持纯色块遮挡。
- COVEREX :扩展视频遮挡区域,功能与 COVER 类似,支持纯色块遮挡。
- LINE :扩展的线条视频叠加区域,支持颜色、粗细等调节。
- MOSAIC:马赛克遮挡区域,支持精度调节。
- MOSAICEX:扩展的马赛克遮挡区域,支持精度调节。
- CORNER_RECTEX:角框区域,支持大小,颜色,粗细等调节。
其中,OVERLAYEX 类型的区域会绑定到VPSS的Channel上;MOSAIC、COVER 类型的区域会绑定到VPSS的Group上。VPSS的Group和Channel区别详见功能说明
区域层次指区域的叠加级别,层次值越大,表示区域的显示级别越高。当发生重叠时,层次值大的将会覆盖层次值小的。 图1 层次叠加示意图
位图填充指将位图的内存值填充到区域内存空间中,位图将会从区域的左上角开始填充。当位图小于区域时,只能填充一部分内存,剩余部分保持原有值;位图大小等于区域时,将刚好全部填充;当位图大于区域时,位图只能将自身和区域一样大小的内存信息填充到区域中。位图填充仅针对OVERLAYEX区域类型有效。
区域属性用户创建一个区域时,需要设置该区域的属性信息,包含OVERLAYEX包含像素格式、大小、背景色等。
通道显示属性指区域在某通道的显示特征 。 例如,MOSAIC的通道显示属性包含显示位置、区域大小、层次、mosaic块大小。 当区域的通道显示属性中的is_show(区域是否显示)为TRUE时,表示区域会显示在该通道中;反之,表示区域在该通道中存在,但处于隐藏状态。

约束说明

表2 region支持的模块信息

类型支持模块(mod_id)设备号(dev_id)取值范围通道号(chn_id)取值范围
OVERLAY当前不支持--
COVERVPSS(HI_ID_VPSS)VPSS Group ID取值范围:[0,255]0
OVERLAYEXVPSS(HI_ID_VPSS)VPSS Group ID取值范围:[0,255][0,1]
COVEREX当前不支持--
LINE当前不支持--
MOSAICVPSS(HI_ID_VPSS)VPSS Group ID取值范围:[0,255]0
MOSAICEX当前不支持--
CORNER_RECTEX当前不支持--

父主题: Region区域管理

在线提单