视频输入

概述

视频输入(VI)模块实现的功能:通过MIPI Rx(含MIPI接口、LVDS接口和HISPI接口),BT.1120,BT.656,BT.601,DC等接口接收视频数据。VI将接收到的数据存入到指定的内存区域,在此过程中,VI可以对接收到的原始视频图像数据进行处理,实现视频数据的采集。

重要概念

  • 视频输入设备

    视频输入设备支持若干种时序输入,负责对时序进行解析。

  • 视频输入物理PIPE

    视频输入PIPE绑定在设备后端,负责设备解析后的数据再处理。

  • 视频输入虚拟PIPE

    视频输入虚拟PIPE不绑定设备,负责其他模块或用户发送过来的数据再处理。

  • 视频物理通道

    物理通道负责将最终处理后的数据输出到DDR,在真正将数据输出到DDR之前,它可以实现裁剪等功能。

  • PIPE的工作模式

    详情请参考“系统控制”章节的“VI和VPSS”的工作模式描述。

  • 掩码

    掩码用于指示VI设备的视频数据来源。

  • 镜头畸变校正(LDC)

    镜头畸变校正,一些低端镜头容易产生图像畸变,需要根据畸变程度对其图像进行校正。

  • DIS

    DIS模块通过比较当前图像与前两帧图像采用不同自由度的防抖算法计算出当前图像在各个轴方向上的抖动偏移向量,然后根据抖动偏移向量对当前图像进行校正,从而起到防抖的效果。

  • BAS

    Bayer scaling,即Bayer域缩放。

  • 提前上报中断

    提前上报中断指图像写出指定的行数到DDR后,VI上报一个中断,把图像发给后端模块处理,可以减少延时,但没有和低延时一样的硬件机制保证后端模块读图像不会出错。

功能描述

功能框图

图 1 VI在软件层次划分的4个部分

VI从软件上划分了输入设备(DEV),输入PIPE(图示为物理PIPE,虚拟PIPE只包含ISP_BE)、物理通道(PHY_CHN)、扩展通道(EXT_CHN)四个层级。各芯片的设备、PIPE、通道个数差异如表1所示。

表 1 设备/PIPE/通道的个数

解决方案

DEV

PHY_PIPE

VIR_PIPE

PHY_CHN

EXT_CHN

OT_VI_MAX_DEV_NUM

OT_VI_MAX_PHYS_PIPE_NUM

OT_VI_MAX_VIRT_PIPE_NUM

OT_VI_MAX_PHYS_CHN_NUM

OT_VI_MAX_EXT_CHN_NUM

SS928V100

4

4

12

1

8

  • SS928V100视频输入通道功能如图2所示。

图 2 SS928V100 VI通道功能框图

视频输入设备

所有VI设备都是相互独立的,支持时序解析。

视频输入PIPE

VI的PIPE包含了ISP的相关处理功能,主要是对图像数据进行流水线处理,输出YUV图像格式给通道。PIPE的工作模式请参考“系统控制”章节的“VI和VPSS”的工作模式描述。

视频物理通道

  • SS928V100 VI只有一个物理通道,支持8个扩展通道。

  • SS928V100物理通道支持的典型分辨率如3840x2160@60fps、3840x2160@30fps、1080p@240fps、1080p@120fps、1080p@60fps、1080p@30fps等。

视频扩展通道

扩展通道是物理通道的扩展,扩展通道具备缩放、裁剪功能,它通过绑定物理通道,将物理通道输出作为自己的输入,然后输出用户设置的目标图像。

BAS功能区分说明

SS928V100有两个子模块支持BAS功能,如表1所示。

表 1 子模块具体功能描述

功能所属子模块

具体功能描述

DEV

支持1、1/2、1/3的缩放和相位调整。

PIPE

只支持1/2的缩放,用户可以通过设置dump属性来获取bas帧。

绑定关系

  • DEV和前端时序输入的接口有约束关系。例如SS928V100前端需要接入BT.1120,且选择了第0组BT.1120管脚,PIPE应该和DEV3绑定,才能正常接收数据。

  • SS928V100 DEV和时序输入接口的约束关系如表1所示。

表 1 SS928V100 DEV与MIPI/BT.1120/BT.656/BT.601/DC接口的绑定关系

VI DEV

MIPI

YUV420_LEGACY

BT.1120/BT.656/BT.601

DC

0

0

0

x

x

1

1

x

x

x

2

2

1

x

x

3

3

x

0

0

“x”表示无效设备号,数字表示有效的设备ID。

  • DEV和PIPE的绑定关系:每个PIPE都可以与任意Dev绑定,PIPE销毁后,PIPE可以和DEV解绑定。

从模式

从模式SENSOR,需要使用VI的从模式模块。从模式与VI的物理PIPE对应关系是固定的。用户需要根据SENSOR管脚的连线和表1确定使用哪个从模式模块,然后选择对应的物理PIPE号创建物理PIPE,否则会没有数据,详细步骤如下:

  1. 根据硬件原理图确认SENSOR管脚连接到了SENSOR_HSx/ SENSOR_VSx。

  2. 根据表1确定该SENSOR连接到从模式模块x。

  3. 软件根据表1确定在采集这个SENSOR的数据时可以使用编号为x的PIPE。

    表 1 从模式与PIPE的对应关系表

    解决方案

    从模式编号

    可连接SENSOR数目

    管脚名称

    默认使用PIPE的编号

    SS928V100

    0

    2

    SENSOR_VS0

    SENSOR_HS0

    PIPE:0

    1

    2

    SENSOR_VS1

    SENSOR_HS1

    PIPE:1

    2

    2

    SENSOR_VS2

    SENSOR_HS2

    PIPE:2

    3

    2

    SENSOR_VS3

    SENSOR_HS3

    PIPE:3

    说明: 从模式和PIPE的对应关系默认是如表1所示,如果需要修改,可以通过修改ISP相关的代码完成。

掩码配置

掩码的高12bit对应着硬件线路的12个pin脚连接(D0到D15之间的任意连续12个pin脚即可,例如D4~D15),用户需要根据实际连接情况设置恰当的掩码配置,掩码的最高比特位对应的pin为D15,例如10bit输入的Sensor连接的pin为D6~D15,掩码配置为0xFFC00000;同理如果是14bit输入时,对应的掩码配置为0xFFFC0000。

VI接入Data线序为由低到高,例如单分量接入时,D0为数据低比特位,D15为数据高比特位。

  • 1路/2路5M或1080p图像输入场景(12bit输入)

    1路/2路5M或1080p图像输入场景下,设置VI设备属性时,可根据表1配置掩码。

表 1 1路、2路5M或1080p场景下的掩码配置(12bit)

设备号

掩码0

掩码1

0

0xFFF00000

0x0

1

0xFFF00000

0x0

  • 1路/2路BT.1120高清输入场景(16bit输入)

    1路/2路BT.1120高清图像输入场景下,设置VI设备属性时,可根据表2配置掩码。

表 2 1路/2路BT.1120图像输入场景下的掩码配置(16bit)

设备号

掩码0

掩码1

0

0xFF000000

0x00FF0000

1

0xFF000000

0x00FF0000

  • 1路/2路D1图像输入场景(8bit输入)

    1路/2路 图像输入场景下,设置VI设备属性时,可根据表3配置掩码。

表 3 1路D1图像输入场景下的掩码配置(8bit)

设备号

掩码0

掩码1

0

0xFF000000

0x0

1

0xFF000000

0x0

API参考

VI模块实现Dev配置和使能、Dev和Pipe绑定、Grp配置、Pipe创建和使能、Chn配置和使能等功能。

该功能模块提供以下MPI:

  • ss_mpi_vi_set_dev_attr:设置VI设备属性。

  • ss_mpi_vi_get_dev_attr:获取VI设备属性。

  • ss_mpi_vi_set_bas_attr:设置VI BayerScale属性。

  • ss_mpi_vi_get_bas_attr:获取VI BayerScale属性。

  • ss_mpi_vi_enable_dev:启用VI设备。

  • ss_mpi_vi_disable_dev:禁用VI设备。

  • ss_mpi_vi_set_thermo_sns_attr:设置热成像探测器的配置属性。

  • ss_mpi_vi_get_thermo_sns_attr:获取热成像探测器的配置属性。

  • ss_mpi_vi_enable_dev_send_frame:启用设备送帧功能。

  • ss_mpi_vi_disable_dev_send_frame:禁用设备送帧功能。

  • ss_mpi_vi_send_dev_frame:配置设备送帧的帧信息。

  • ss_mpi_vi_set_dev_timing_attr:设置设备自产生时序属性。

  • ss_mpi_vi_get_dev_timing_attr:获取设备自产生时序属性。

  • ss_mpi_vi_set_dev_data_attr:设置设备自产生数据属性。

  • ss_mpi_vi_get_dev_data_attr:获取设备自产生数据属性。

  • ss_mpi_vi_bind:一对一绑定Dev和Pipe。

  • ss_mpi_vi_unbind:一对一解绑定Dev和Pipe。

  • ss_mpi_vi_get_bind_by_dev:获取与Dev绑定的Pipe。

  • ss_mpi_vi_get_bind_by_pipe:获取与Pipe绑定的Dev。

  • ss_mpi_vi_set_wdr_fusion_grp_attr:设置wdr合成组的属性。

  • ss_mpi_vi_get_wdr_fusion_grp_attr:获取wdr合成组的属性。

  • ss_mpi_vi_create_pipe:创建一个VI PIPE。

  • ss_mpi_vi_destroy_pipe:销毁一个VI PIPE。

  • ss_mpi_vi_set_pipe_attr:设置VI PIPE的属性。

  • ss_mpi_vi_get_pipe_attr:获取VI PIPE的属性。

  • ss_mpi_vi_start_pipe:启用VI PIPE。

  • ss_mpi_vi_stop_pipe:禁用VI PIPE。

  • ss_mpi_vi_set_pipe_pre_crop:设置VI 物理PIPE输入端的裁剪功能属性。

  • ss_mpi_vi_get_pipe_pre_crop:获取VI 物理PIPE输入端的裁剪功能属性。

  • ss_mpi_vi_set_pipe_post_crop:设置VI 物理PIPE输出端的裁剪功能属性。

  • ss_mpi_vi_get_pipe_post_crop:获取VI 物理PIPE输出端的裁剪功能属性。

  • ss_mpi_vi_set_pipe_frame_dump_attr:设置VI 物理PIPE dump图像帧属性。

  • ss_mpi_vi_get_pipe_frame_dump_attr:获取VI 物理PIPE dump图像帧属性。

  • ss_mpi_vi_get_pipe_frame:获取VI物理PIPE图像帧。

  • ss_mpi_vi_release_pipe_frame:释放VI 物理PIPE的图像帧。

  • ss_mpi_vi_set_pipe_fe_out_frame_dump_attr:设置VI 物理PIPE FE输出 dump图像帧属性。

  • ss_mpi_vi_get_pipe_fe_out_frame_dump_attr:获取VI 物理PIPE FE输出 dump图像帧属性。

  • ss_mpi_vi_get_pipe_fe_out_frame:获取VI物理PIPE FE输出图像帧。

  • ss_mpi_vi_release_pipe_fe_out_frame:释放VI 物理PIPE FE输出的图像帧。

  • ss_mpi_vi_set_pipe_private_data_dump_attr:设置VI物理PIPE dump私有数据的属性。

  • ss_mpi_vi_get_pipe_private_data_dump_attr:获取VI物理PIPE dump私有数据的属性。

  • ss_mpi_vi_get_pipe_private_data:获取VI物理PIPE的私有数据。

  • ss_mpi_vi_release_pipe_private_data:释放VI物理PIPE的私有数据。

  • ss_mpi_vi_set_pipe_bas_frame_dump_attr:设置VI PIPE dump bas图像帧的属性。

  • ss_mpi_vi_get_pipe_bas_frame_dump_attr:获取VI PIPE dump bas图像帧的属性。

  • ss_mpi_vi_get_pipe_bas_frame:获取VI PIPE bas图像帧。

  • ss_mpi_vi_release_pipe_bas_frame:释放VI PIPE bas图像帧。

  • ss_mpi_vi_set_pipe_frame_source:设置VI PIPE数据的来源。

  • ss_mpi_vi_get_pipe_frame_source:获取VI PIPE数据的来源。

  • ss_mpi_vi_set_pipe_param:设置VI PIPE参数。

  • ss_mpi_vi_get_pipe_param:获取VI PIPE参数。

  • ss_mpi_vi_enable_pipe_stagger_out_split:启用VI PIPE STAGGER模式输出拆分。

  • ss_mpi_vi_disable_pipe_stagger_out_split:禁用VI PIPE STAGGER模式输出拆分。

  • ss_mpi_vi_set_pipe_bnr_buf_num:设置VI PIPE bayernr buffer个数。

  • ss_mpi_vi_get_pipe_bnr_buf_num:获取VI PIPE bayernr buffer个数。

  • ss_mpi_vi_send_pipe_yuv:通过VI PIPE发送YUV数据。

  • ss_mpi_vi_send_pipe_raw:通过VI PIPE发送RAW数据。

  • ss_mpi_vi_query_pipe_status:查询VI PIPE状态。

  • ss_mpi_vi_enable_pipe_interrupt:启动VI 物理PIPE中断。

  • ss_mpi_vi_disable_pipe_interrupt:禁用VI 物理PIPE中断。

  • ss_mpi_vi_set_pipe_vc_number:设置VI 物理PIPE对接前端sensor或者AD的VC号。

  • ss_mpi_vi_get_pipe_vc_number:获取VI 物理PIPE对接前端sensor或者AD的VC号。

  • ss_mpi_vi_set_pipe_low_delay_attr:设置VI PIPE低延时属性。

  • ss_mpi_vi_get_pipe_low_delay_attr:获取VI PIPE低延时属性。

  • ss_mpi_vi_set_pipe_frame_interrupt_attr:设置VI PIPE上报中断属性。

  • ss_mpi_vi_get_pipe_frame_interrupt_attr:获取VI PIPE上报中断属性。

  • ss_mpi_vi_set_pipe_fisheye_cfg:设置VI PIPE对应的鱼眼镜头LMF参数配置。

  • ss_mpi_vi_get_pipe_fisheye_cfg:获取VI PIPE对应的鱼眼镜头LMF参数配置。

  • ss_mpi_vi_get_pipe_compress_param:获取VI物理 PIPE的RAW压缩参数。

  • ss_mpi_vi_set_user_pic:设置用户图片,作为无视频信号时的插入图片。

  • ss_mpi_vi_enable_user_pic:启用VI PIPE插入用户图片。

  • ss_mpi_vi_disable_user_pic:禁用VI PIPE插入用户图片。

  • ss_mpi_vi_pipe_set_vb_src:设置VI PIPE的VB来源。

  • ss_mpi_vi_pipe_get_vb_src:获取VI PIPE的VB来源。

  • ss_mpi_vi_pipe_attach_vb_pool:将VI的PIPE绑定到某个视频缓存VB池中。

  • ss_mpi_vi_pipe_detach_vb_pool:将VI的PIPE从某个视频缓存VB池中解绑定。

  • ss_mpi_vi_get_pipe_fd:获取VI PIPE文件描述符。

  • ss_mpi_vi_set_chn_attr:设置VI通道属性。

  • ss_mpi_vi_get_chn_attr:获取VI通道属性。

  • ss_mpi_vi_set_ext_chn_attr:设置VI扩展通道属性。

  • ss_mpi_vi_get_ext_chn_attr:获取VI扩展通道属性。

  • ss_mpi_vi_enable_chn:启用VI通道。

  • ss_mpi_vi_disable_chn:禁用VI通道。

  • ss_mpi_vi_set_chn_crop:设置VI通道裁剪功能属性。

  • ss_mpi_vi_get_chn_crop:获取VI通道裁剪功能属性。

  • ss_mpi_vi_set_chn_rotation:设置VI图像旋转属性。

  • ss_mpi_vi_get_chn_rotation:获取VI图像旋转属性。

  • ss_mpi_vi_set_chn_ldc_attr:设置VI镜头畸变校正(LDC)属性。

  • ss_mpi_vi_get_chn_ldc_attr:获取VI镜头畸变校正(LDC)属性。

  • ss_mpi_vi_ldc_pos_query_dst_to_src:根据镜头畸变校正(LDC)的输出图像坐标点查找输入图像的坐标点。

  • ss_mpi_vi_ldc_pos_query_src_to_dst:根据镜头畸变校正(LDC)的输入图像坐标点查找输出图像的坐标点。

  • ss_mpi_vi_set_chn_spread_attr:设置VI通道展宽属性。

  • ss_mpi_vi_get_chn_spread_attr:获取VI通道展宽属性。

  • ss_mpi_vi_set_chn_fisheye:设置VI通道对应的鱼眼属性。

  • ss_mpi_vi_get_chn_fisheye:获取VI通道对应的鱼眼属性。

  • ss_mpi_vi_fisheye_pos_query_dst_to_src:根据鱼眼校正输出图像坐标点查找源图像坐标点。

  • ss_mpi_vi_get_chn_rgn_luma:获取指定图像区域的亮度总和。

  • ss_mpi_vi_set_chn_dis_cfg:设置VI通道的DIS配置信息。

  • ss_mpi_vi_get_chn_dis_cfg:获取VI通道的DIS配置信息。

  • ss_mpi_vi_set_chn_dis_attr:设置VI通道的DIS属性。

  • ss_mpi_vi_get_chn_dis_attr:获取VI通道的DIS属性。

  • ss_mpi_vi_set_chn_dis_param:设置VI通道的DIS可选参数。

  • ss_mpi_vi_get_chn_dis_param:获取VI通道的DIS的可选参数。

  • ss_mpi_vi_set_chn_dis_wdr_attr:设置VI通道的DIS WDR属性。

  • ss_mpi_vi_get_chn_dis_wdr_attr:获取VI通道的DIS WDR属性。

  • ss_mpi_vi_set_chn_fov_correction_attr:设置VI通道的视场角矫正属性。

  • ss_mpi_vi_get_chn_fov_correction_attr:获取VI通道的视场角矫正属性。

  • ss_mpi_vi_get_chn_frame:从VI通道获取采集的图像。

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

  • ss_mpi_vi_set_chn_low_delay_attr:设置VI通道低延时属性。

  • ss_mpi_vi_get_chn_low_delay_attr:获取VI通道低延时属性。

  • ss_mpi_vi_set_chn_align:设置VI通道输出YUV数据的行stride对齐。

  • ss_mpi_vi_get_chn_align:获取VI通道输出YUV数据的行stride对齐。

  • ss_mpi_vi_chn_set_vb_src:设置VI通道使用VB的来源。

  • ss_mpi_vi_chn_get_vb_src:获取VI通道使用VB的来源。

  • ss_mpi_vi_chn_attach_vb_pool:将VI通道绑定到某个视频缓存VB池中。

  • ss_mpi_vi_chn_detach_vb_pool:将VI通道从某个视频缓存VB池中解绑定。

  • ss_mpi_vi_query_chn_status:查询VI通道的状态。

  • ss_mpi_vi_get_chn_fd:获取VI通道文件描述符。

  • ss_mpi_vi_set_stitch_grp_attr:设置VI 的拼接组属性。

  • ss_mpi_vi_get_stitch_grp_attr:获取VI 的拼接组属性。

  • ss_mpi_vi_set_mod_param:设置VI模块参数。

  • ss_mpi_vi_get_mod_param:获取VI模块参数。

  • ss_mpi_vi_close_fd:关闭VI文件描述符。

  • ss_mpi_vi_chn_set_zoom_in_window:设置vi chn 裁剪放大属性。

  • ss_mpi_vi_chn_get_zoom_in_window:获取vi chn 裁剪放大属性。

ss_mpi_vi_set_dev_attr

【描述】

设置VI设备属性。基本设备属性默认了部分芯片配置,满足绝大部分的sensor对接要求。

【语法】

td_s32 ss_mpi_vi_set_dev_attr(ot_vi_dev vi_dev, const ot_vi_dev_attr *dev_attr);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)。

输入

dev_attr

VI设备属性指针。

静态属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 不支持BT.1120隔行输入。

  • 在调用前要保证VI设备处于禁用状态。如果VI设备已处于使能状态,可以使用ss_mpi_vi_disable_dev来禁用设备。

  • 参数dev_attr主要用来配置指定VI设备的视频接口模式,用于与外围camera、sensor或codec对接,支持的接口模式包括MIPI Rx(MIPI/LVDS/HISPI)、SLVS-EC。用户需要配置以下几类信息,具体属性意义参见“数据类型”部分的说明:

    • 接口模式信息:接口模式为MIPI Rx(MIPI/LVDS/HISPI)等模式

    • 工作模式信息:1路、2路、4路复合模式

    • 数据布局信息:复合模式下多路数据的排布

    • 数据信息:逐行输入、YUV数据输入顺序

    • 同步时序信息:垂直、水平同步信号的属性

【举例】

无。

【相关主题】

ss_mpi_vi_get_dev_attr

ss_mpi_vi_get_dev_attr

【描述】

获取VI设备属性。

【语法】

td_s32 ss_mpi_vi_get_dev_attr(ot_vi_dev vi_dev, ot_vi_dev_attr *dev_attr);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)。

输入

dev_attr

VI设备属性指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

如果未设置VI设备属性,该接口将返回失败。

【举例】

无。

【相关主题】

ss_mpi_vi_set_dev_attr

ss_mpi_vi_set_bas_attr

【描述】

设置VI BayerScale属性。

【语法】

td_s32 ss_mpi_vi_set_bas_attr(ot_vi_dev vi_dev, const ot_vi_bas_attr *bas_attr);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值:0。

输入

bas_attr

VI BayerScale属性指针。

静态属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • wdr模式下不支持bas功能。

  • 该接口在ss_mpi_vi_enable_dev之前配置,在ss_mpi_vi_set_dev_attr之后配置。

【举例】

无。

【相关主题】

ss_mpi_vi_get_bas_attr

ss_mpi_vi_get_bas_attr

【描述】

获取VI BayerScale属性。

【语法】

td_s32 ss_mpi_vi_get_bas_attr(ot_vi_dev vi_dev, ot_vi_bas_attr *bas_attr);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值:0。

输入

bas_attr

VI BayerScale属性指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

无。

【举例】

无。

【相关主题】

ss_mpi_vi_set_bas_attr

ss_mpi_vi_enable_dev

【描述】

启用VI设备。

【语法】

td_s32 ss_mpi_vi_enable_dev(ot_vi_dev vi_dev);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 启用前必须已经设置设备属性,否则返回失败。

  • 可重复启用,不返回失败。

【举例】

无。

【相关主题】

ss_mpi_vi_disable_dev

ss_mpi_vi_disable_dev

【描述】

禁用VI设备。

【语法】

td_s32 ss_mpi_vi_disable_dev(ot_vi_dev vi_dev);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 需先销毁所有与该VI设备绑定的物理PIPE后,再禁用VI设备。

  • 可重复禁用,不返回失败。

  • 支持低功耗处理,禁用VI设备后将完全关闭该设备,需要重新设置属性,才能使能VI设备。

【举例】

无。

【相关主题】

ss_mpi_vi_enable_dev

ss_mpi_vi_set_thermo_sns_attr

【描述】

设置热成像探测器的配置属性。

【语法】

td_s32 ss_mpi_vi_set_thermo_sns_attr(ot_vi_dev vi_dev, const ot_vi_thermo_sns_attr *sns_attr);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)。

输入

sns_attr

热成像探测器的配置属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

解决方案

支持的Dev ID

SS928V100

只有Dev1支持热成像。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

调用前必须已经使能设备,否则返回失败。

【举例】

无。

【相关主题】

ss_mpi_vi_get_thermo_sns_attr

ss_mpi_vi_get_thermo_sns_attr

【描述】

获取热成像探测器的配置属性。

【语法】

td_s32 ss_mpi_vi_get_thermo_sns_attr(ot_vi_dev vi_dev, ot_vi_thermo_sns_attr *sns_attr);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)。

输入

sns_attr

热成像探测器的配置属性。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

调用前必须先调用了ss_mpi_vi_set_thermo_sns_attr接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_thermo_sns_attr

ss_mpi_vi_enable_dev_send_frame

【描述】

启用设备送帧功能。

【语法】

td_s32 ss_mpi_vi_enable_dev_send_frame(ot_vi_dev vi_dev);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值:0。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 必须已经启用设备,才能配置该接口送帧,否则会返回错误。

  • 必须和ss_mpi_vi_disable_dev_send_frame成对使用,否则会导致VB泄露。

  • dev自产生时序进行wdr模式灌raw时,不能使用pipe帧率控制对wdr长短帧帧率进行控制,否则可能出现wdr长短帧不匹配造成的wdr丢帧。

【举例】

无。

【相关主题】

ss_mpi_vi_disable_dev_send_frame

ss_mpi_vi_disable_dev_send_frame

【描述】

禁用设备送帧功能。

【语法】

td_s32 ss_mpi_vi_disable_dev_send_frame(ot_vi_dev vi_dev);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值:0。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

无。

【举例】

无。

【相关主题】

ss_mpi_vi_enable_dev_send_frame

ss_mpi_vi_send_dev_frame

【描述】

配置设备送帧的帧信息。

【语法】

td_s32 ss_mpi_vi_send_dev_frame(ot_vi_dev vi_dev, const ot_video_frame_info *frame_info, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值:0。

输入

frame_info

设备送帧的帧信息结构体。

ot_video_frame_info具体请参考“系统控制”章节。

输入

milli_sec

超时参数milli_sec:

-1表示阻塞模式;

0表示非阻塞模式;

大于0表示超时模式,超时时间的单位为毫秒(ms)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

使用本接口时,需先调用ss_mpi_vi_enable_dev_send_frame使能送帧。

【举例】

无。

【相关主题】

ss_mpi_vi_enable_dev_send_frame

ss_mpi_vi_set_dev_timing_attr

【描述】

设置自产生时序属性。

【语法】

td_s32 ss_mpi_vi_set_dev_timing_attr(ot_vi_dev vi_dev, const ot_vi_dev_timing_attr *timing_attr);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)

输入

timing_attr

详见ot_vi_dev_timing_attr说明

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • 使用本接口前,需先配置DEV属性,并使能设备,否则返回失败。

  • 使用自产生时序功能灌RAW时,需配置DEV的宽高与RAW文件的宽高保持一致。

  • 使能自产生时序后,若不灌RAW,则无图像显示。

  • 使能自产生时序后,从DEV灌RAW后VI输出帧率由配置自产生时序产生的有效帧率决定。

  • DEV配置X2速率时,使能自产生时序会导致时序异常。

【举例】

无。

【相关主题】

ss_mpi_vi_get_dev_timing_attr

【描述】

获取自产生时序属性。

【语法】

td_s32 ss_mpi_vi_get_dev_timing_attr(ot_vi_dev vi_dev, ot_vi_dev_timing_attr *timing_attr);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)

输入

timing_attr

详见ot_vi_dev_timing_attr说明

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h 、ss_mpi_vi.h

【注意】

无。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_dev_data_attr

【描述】

设置设备自产生数据属性。

【语法】

td_s32 ss_mpi_vi_set_dev_data_attr(ot_vi_dev vi_dev, const ot_vi_dev_data_attr *data_attr);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)

输入

data_attr

VI设备自产生数据属性指针。

静态属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

使用本接口前,需先配置DEV属性,并使能设备,否则返回失败。

【举例】

无。

【相关主题】

ss_mpi_vi_get_dev_data_attr

ss_mpi_vi_get_dev_data_attr

【描述】

获取设备自产生数据属性。

【语法】

td_s32 ss_mpi_vi_get_dev_data_attr(ot_vi_dev vi_dev, ot_vi_dev_data_attr*data_attr);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)

输入

data_attr

VI设备自产生数据属性指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

无。

【举例】

无。

【相关主题】

ss_mpi_vi_set_dev_data_attr

ss_mpi_vi_bind

【描述】

一对一绑定Dev和Pipe。

【语法】

td_s32 ss_mpi_vi_bind(ot_vi_dev vi_dev, ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)。

输入

vi_pipe

VI 物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 必须先使能VI设备后才能绑定物理PIPE。

  • 不支持动态绑定。

  • 不支持绑定已经创建的PIPE。

【举例】

无。

【相关主题】

ss_mpi_vi_enable_dev

ss_mpi_vi_unbind

【描述】

一对一解绑定Dev和Pipe。

【语法】

td_s32 ss_mpi_vi_unbind(ot_vi_dev vi_dev, ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)。

输入

vi_pipe

VI 物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

必须先销毁物理PIPE再解绑定,否则返回失败。

【举例】

无。

【相关主题】

ss_mpi_vi_enable_dev

ss_mpi_vi_get_bind_by_dev

【描述】

获取与Dev绑定的Pipe。

【语法】

td_s32 ss_mpi_vi_get_bind_by_dev(ot_vi_dev vi_dev, ot_vi_bind_pipe *bind_pipe);

【参数】

参数名称

描述

输入/输出

vi_dev

VI设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)。

输入

bind_pipe

绑定Dev的物理PIPE序号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

无。

【举例】

无。

【相关主题】

ss_mpi_vi_bind

ss_mpi_vi_get_bind_by_pipe

【描述】

获取与Pipe绑定的Dev。

【语法】

td_s32 ss_mpi_vi_get_bind_by_pipe(ot_vi_pipe vi_pipe, ot_vi_dev *vi_dev);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI 物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

vi_dev

绑定PIPE的设备号。

取值范围:[0, OT_VI_MAX_DEV_NUM)。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

无。

【举例】

无。

【相关主题】

ss_mpi_vi_bind

ss_mpi_vi_set_wdr_fusion_grp_attr

【描述】

设置wdr合成组的属性。

【语法】

td_s32 ss_mpi_vi_set_wdr_fusion_grp_attr(ot_vi_grp fusion_grp, const ot_vi_wdr_fusion_grp_attr *grp_attr);

【参数】

参数名称

描述

输入/输出

fusion_grp

wdr合成组的组号。

取值范围:

[0, OT_VI_MAX_WDR_FUSION_GRP_NUM)

输入

grp_attr

wdr合成组的属性指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • 使用本接口,需先调用DEV和PIPE绑定接口,且grp_attr中的pipe id都必须是与同一个Dev绑定的。

  • 本接口需要在创建pipe前调用。

  • 本接口支持更新grp_attr的pipe_id,如WDR模式和线性的切换,但不支持同一个pipe_id绑定到两个grp_attr。

  • WDR合成组的pipe_id不能重复。

  • WDR模式下主pipe默认为pipe id最小的pipe,例如,wdr合成组pipe id为2、1、3,主pipe为pipe1;若配置pipe_reverse为TRUE,则主pipe为pipe_id最大的pipe,即pipe3。

  • pipe_reverse为TRUE仅支持行模式WDR以及VI离线模式。

  • video mode为Advanced模式时不支持WDR。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_wdr_fusion_grp_attr

【描述】

获取wdr合成组的属性。

【语法】

td_s32 ss_mpi_vi_get_wdr_fusion_grp_attr(ot_vi_grp fusion_grp, ot_vi_wdr_fusion_grp_attr *grp_attr);

【参数】

参数名称

描述

输入/输出

fusion_grp

wdr合成组的组号。

取值范围:

[0, OT_VI_MAX_WDR_FUSION_GRP_NUM)

输入

grp_attr

wdr合成组的属性指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

本接口需要在设置WDR GROUP后调用。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_create_pipe

【描述】

创建一个VI PIPE。

【语法】

td_s32 ss_mpi_vi_create_pipe(ot_vi_pipe vi_pipe, const ot_vi_pipe_attr*pipe_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。

输入

pipe_attr

PIPE的属性结构体指针。

静态属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 物理PIPE属性中的size、pixel_format、bit_width等必须与前端进入VI的时序设置保持一致,否则会出现错误。

  • 不支持重复创建。

  • 当VI离线且输入图像大于4096时,不支持压缩。

  • WDR模式下需要创建多个物理PIPE绑定到同一个开了WDR的设备上,当进行切换时,需要把所有绑定到该设备的物理PIPE销毁再重建。不能使用上次使用过而未销毁的物理PIPE,否则可能造成错误。

【举例】

无。

【相关主题】

ss_mpi_vi_destroy_pipe

ss_mpi_vi_destroy_pipe

【描述】

销毁一个VI PIPE。

【语法】

td_s32 ss_mpi_vi_destroy_pipe(ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • 使用本接口前,需先调用ss_mpi_vi_stop_pipe(vi_pipe)停止PIPE,否则提示失败。

  • 在未创建PIPE或重复销毁PIPE时,调用本接口,不会失败。

【举例】

无。

【相关主题】

ss_mpi_vi_create_pipe

ss_mpi_vi_set_pipe_attr

【描述】

设置VI PIPE的属性。

【语法】

td_s32 ss_mpi_vi_set_pipe_attr(ot_vi_pipe vi_pipe, const ot_vi_pipe_attr *pipe_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。

输入

pipe_attr

PIPE的属性结构体指针。

静态属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建

  • PIPE属性必须合法,其中部分静态属性不可动态设置,具体请参见ot_vi_pipe_attr。

  • 当配置为OT_VI_PIPE_BYPASS_BE时,VI 通道类功能(如mirror/flip)不生效。

  • 当配置OT_COMPRESS_MODE_FRAME时,PIPE低延时、提前上报属性等功能不能使用。

【举例】

无。

【相关主题】

ss_mpi_vi_get_pipe_attr

【描述】

获取VI PIPE的属性。

【语法】

td_s32 ss_mpi_vi_get_pipe_attr(ot_vi_pipe vi_pipe, ot_vi_pipe_attr *pipe_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

pipe_attr

PIPE的属性结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

PIPE必须已创建

【举例】

【相关主题】

ss_mpi_vi_start_pipe

【描述】

启用VI PIPE。

【语法】

td_s32 ss_mpi_vi_start_pipe(ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建

  • 重复调用该函数设置同一个PIPE返回成功。

【举例】

无。

【相关主题】

ss_mpi_vi_set_dev_attr

ss_mpi_vi_stop_pipe

【描述】

禁用VI PIPE。

【语法】

td_s32 ss_mpi_vi_stop_pipe(ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0,OT_VI_MAX_PIPE_NUM)

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建。

  • 重复调用该函数设置同一个PIPE返回成功。

【举例】

无。

【相关主题】

ss_mpi_vi_set_dev_attr

ss_mpi_vi_set_pipe_pre_crop

【描述】

设置VI 物理PIPE输入端的裁剪功能属性。

【语法】

td_s32 ss_mpi_vi_set_pipe_pre_crop(ot_vi_pipe vi_pipe, const ot_crop_info *crop_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

crop_info

裁剪功能参数结构体。

静态属性。

ot_crop_info请查看“系统控制”章节。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_video.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 本接口需在Start Pipe前配置,启动PIPE后,不可调用。

  • crop_info.rect.x+width需大于等于pipe_attr.size.width,且需小于等于BAS输出的宽度,高度同理。

  • Crop属性的x/y需2对齐,宽高需4对齐。

  • 配置pre_crop后,需配置ISP的PUB属性小于或者等于PreCrop的宽高。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_pre_crop

【描述】

获取VI 物理PIPE输入端的裁剪功能属性。

【语法】

td_s32 ss_mpi_vi_get_pipe_pre_crop(ot_vi_pipe vi_pipe, ot_crop_info *crop_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI 物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

crop_info

裁剪功能参数结构体

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_video.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_pipe_post_crop

【描述】

设置VI 物理PIPE输出端的裁剪功能属性。

【语法】

td_s32 ss_mpi_vi_set_pipe_post_crop(ot_vi_pipe vi_pipe, const ot_crop_info *crop_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI 物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

crop_info

裁剪功能参数结构体。

静态属性。

ot_crop_info请查看“系统控制”章节。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_video.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • VI离线VPSS离线、VI离线VPSS在线时,不支持本接口。

  • Crop_info.rect.x+width需小于等于pipe_attr.size.width,且裁剪宽度需要大于等于32;高度同理。

  • 支持动态配置pipe post crop属性。

  • Crop属性的x/y需2对齐,宽高需4对齐。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_post_crop

【描述】

获取VI 物理PIPE输出端的裁剪功能属性。

【语法】

td_s32 ss_mpi_vi_get_pipe_post_crop(ot_vi_pipe vi_pipe, ot_crop_info *crop_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI 物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

crop_info

裁剪功能参数结构体

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_video.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • VI离线VPSS离线、VI离线VPSS在线时,不支持本接口。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_pipe_frame_dump_attr

【描述】

设置VI 物理PIPE dump图像帧属性。

【语法】

td_s32 ss_mpi_vi_set_pipe_frame_dump_attr(ot_vi_pipe vi_pipe, const ot_vi_frame_dump_attr *dump_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

dump_attr

VI 物理PIPE dump的属性指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • 需要dump裁剪后的图像,可以在dump前设置pipe的裁剪。

  • 需要dump压缩或者非压图像,可以在dump前设置pipe的属性以改变压缩类型。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_frame_dump_attr

【描述】

获取VI 物理PIPE dump图像帧属性。

【语法】

td_s32 ss_mpi_vi_get_pipe_frame_dump_attr(ot_vi_pipe vi_pipe, ot_vi_frame_dump_attr *dump_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

dump_attr

VI 物理PIPE dump的属性指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_frame

【描述】

获取VI物理PIPE图像帧。

【语法】

td_s32 ss_mpi_vi_get_pipe_frame(ot_vi_pipe vi_pipe, ot_video_frame_info *frame_info, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

frame_info

VI PIPE帧信息结构体。

输出

milli_sec

超时参数milli_sec:

-1表示阻塞模式;

0表示非阻塞模式;

大于0表示超时模式,超时时间的单位为毫秒(ms)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建。

  • 调用ss_mpi_vi_set_pipe_frame_dump_attr设置dump属性、使能dump、设置depth,否则获取不到帧数据。

  • 虚拟PIPE不支持。

【举例】

【相关主题】

ss_mpi_vi_release_pipe_frame

ss_mpi_vi_release_pipe_frame

【描述】

释放VI 物理PIPE的图像帧。

【语法】

td_s32 ss_mpi_vi_release_pipe_frame(ot_vi_pipe vi_pipe, const ot_video_frame_info *frame_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

frame_info

VI PIPE帧信息结构体。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • 本接口调用次数需与ss_mpi_vi_get_pipe_frame匹配使用,释放次数过多则返回报错。

  • 用户必须保证frame_info结构中的信息与获取时一致,否则可能造成释放不成功。

【举例】

无。

【相关主题】

ss_mpi_vi_get_pipe_frame

ss_mpi_vi_set_pipe_fe_out_frame_dump_attr

【描述】

设置VI 物理PIPE FE 输出 dump图像帧属性。

【语法】

td_s32 ss_mpi_vi_set_pipe_fe_out_frame_dump_attr(ot_vi_pipe vi_pipe, const ot_vi_frame_dump_attr *dump_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

dump_attr

VI 物理PIPE dump的属性指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码。

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • FE输出帧是 FE写出的原始帧,VI在线模式不支持该接口。

  • 需要dump裁剪后的图像,可以在dump前设置pipe的裁剪。

  • 需要dump压缩或者非压图像,可以在dump前设置pipe的属性以改变压缩类型。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_fe_out_frame_dump_attr

【描述】

获取VI 物理PIPE FE输出 dump图像帧属性。

【语法】

td_s32 ss_mpi_vi_get_pipe_fe_out_frame_dump_attr(ot_vi_pipe vi_pipe, ot_vi_frame_dump_attr *dump_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

dump_attr

VI 物理PIPE dump的属性指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码。

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建。

  • 虚拟PIPE不支持。

  • VI在线模式不支持调用本接口。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_fe_out_frame

【描述】

获取VI物理PIPE FE输出的图像帧。

【语法】

td_s32 ss_mpi_vi_get_pipe_fe_out_frame(ot_vi_pipe vi_pipe, ot_video_frame_info *frame_info, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

frame_info

VI PIPE帧信息结构体。

输出

milli_sec

超时参数milli_sec:

-1表示阻塞模式;

0表示非阻塞模式;

大于0表示超时模式,超时时间的单位为毫秒(ms)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码。

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建。

  • 调用ss_mpi_vi_set_pipe_fe_out_frame_dump_attr设置dump属性、使能dump、设置depth,否则获取不到帧数据。

  • 获取到的输出帧是 FE输出的原始帧数据,与stagger拆分模式一起使用时,可使用本接口获取到stagger完整帧数据,同时使用ss_mpi_vi_get_pipe_frame获取到拆分后的第一帧数据。

  • 虚拟PIPE不支持。

  • VI在线模式不支持调用本接口。

【举例】

【相关主题】

ss_mpi_vi_release_pipe_fe_out_frame

ss_mpi_vi_release_pipe_fe_out_frame

【描述】

释放VI 物理PIPE FE输出的图像帧。

【语法】

td_s32 ss_mpi_vi_release_pipe_fe_out_frame(ot_vi_pipe vi_pipe, const ot_video_frame_info *frame_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

frame_info

VI PIPE帧信息结构体。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码。

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • 本接口调用次数需与ss_mpi_vi_get_pipe_fe_out_frame匹配使用,释放次数过多则返回报错。

  • 用户必须保证frame_info结构中的信息与获取时一致,否则可能造成释放不成功。

【举例】

无。

【相关主题】

ss_mpi_vi_get_pipe_fe_out_frame

ss_mpi_vi_set_pipe_private_data_dump_attr

【描述】

设置VI物理PIPE dump私有数据的属性。

【语法】

td_s32 ss_mpi_vi_set_pipe_private_data_dump_attr(ot_vi_pipe vi_pipe, const ot_vi_private_data_dump_attr *dump_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

dump_attr

VI 物理PIPE 私有数据dump的属性指针。

静态属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • 虚拟PIPE不支持。

  • private data使用公共VB,需要准备好公共VB池。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_private_data_dump_attr

【描述】

获取VI物理PIPE dump私有数据的属性。

【语法】

td_s32 ss_mpi_vi_get_pipe_private_data_dump_attr(ot_vi_pipe vi_pipe, ot_vi_private_data_dump_attr*dump_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

dump_attr

VI 物理PIPE 私有数据dump的属性指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_private_data

【描述】

获取VI物理PIPE的私有数据。

【语法】

td_s32 ss_mpi_vi_get_pipe_private_data(ot_vi_pipe vi_pipe, ot_vi_private_data_info *data_info, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

data_info

VI PIPE私有数据信息结构体。

输出

milli_sec

超时参数milli_sec:

-1表示阻塞模式;

0表示非阻塞模式;

大于0表示超时模式,超时时间的单位为毫秒(ms)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建。

  • 调用ss_mpi_vi_set_pipe_private_data_dump_attr设置dump属性、使能dump、设置depth,否则获取不到私有数据。

  • 本接口不支持使用select模式获取帧数据。

  • 虚拟PIPE不支持。

【举例】

【相关主题】

ss_mpi_vi_release_pipe_private_data

ss_mpi_vi_release_pipe_private_data

【描述】

释放VI PIPE的私有数据。

【语法】

td_s32 ss_mpi_vi_release_pipe_private_data(ot_vi_pipe vi_pipe, const ot_vi_private_data_info *data_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

data_info

VI PIPE数据信息结构体。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • 本接口调用次数需与ss_mpi_vi_get_pipe_private_data匹配使用,释放次数过多则返回报错。

  • 用户必须保证data_info结构中的信息与获取时一致,否则可能造成释放不成功。

【举例】

无。

【相关主题】

ss_mpi_vi_get_pipe_private_data

ss_mpi_vi_set_pipe_bas_frame_dump_attr

【描述】

设置VI PIPE dump bas图像帧的属性。

【语法】

td_s32 ss_mpi_vi_set_pipe_bas_frame_dump_attr(ot_vi_pipe vi_pipe, const ot_vi_frame_dump_attr *dump_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

dump_attr

VI 物理PIPE dump的属性指针。

静态属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • 虚拟PIPE不支持。

  • BAS图像只支持原始图像宽高的1/2缩放。

  • BAS图像帧使用公共VB,需要准备好公共VB池

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_bas_frame_dump_attr

【描述】

获取VI PIPE dump bas图像帧的属性。

【语法】

td_s32 ss_mpi_vi_get_pipe_bas_frame_dump_attr(ot_vi_pipe vi_pipe, ot_vi_frame_dump_attr *dump_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

dump_attr

VI 物理PIPE dump的属性指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

无。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_bas_frame

【描述】

获取VI PIPE bas图像帧。

【语法】

td_s32 ss_mpi_vi_get_pipe_bas_frame(ot_vi_pipe vi_pipe, ot_video_frame_info *frame_info, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

frame_info

VI PIPE帧信息结构体。

输出

milli_sec

超时参数milli_sec:

-1表示阻塞模式;

0表示非阻塞模式;

大于0表示超时模式,超时时间的单位为毫秒(ms)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建。

  • 调用ss_mpi_vi_set_pipe_bas_frame_dump_attr设置dump属性、使能dump、设置depth,否则获取不到raw数据。

  • 本接口不支持使用select模式获取帧数据。

  • 本接口获取的图像帧像素格式固定为raw12格式,不能修改。

  • 虚拟PIPE不支持。

【举例】

【相关主题】

ss_mpi_vi_release_pipe_bas_frame

ss_mpi_vi_release_pipe_bas_frame

【描述】

释放VI PIPE bas图像帧。

【语法】

td_s32 ss_mpi_vi_release_pipe_bas_frame(ot_vi_pipe vi_pipe, const ot_video_frame_info *frame_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

frame_info

VI PIPE帧信息结构体。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • 本接口调用次数需与ss_mpi_vi_get_pipe_bas_frame匹配使用,释放次数过多则返回报错。

  • 用户必须保证frame_info结构中的信息与获取时一致,否则可能造成释放不成功。

【举例】

无。

【相关主题】

ss_mpi_vi_get_pipe_bas_frame

ss_mpi_vi_set_pipe_frame_source

【描述】

设置VI PIPE数据的来源。

【语法】

td_s32 ss_mpi_vi_set_pipe_frame_source(ot_vi_pipe vi_pipe, const ot_vi_pipe_frame_source frame_source);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

frame_source

PIPE的数据来源。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

PIPE必须已创建。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_frame_source

【描述】

获取VI PIPE数据的来源。

【语法】

td_s32 ss_mpi_vi_get_pipe_frame_source(ot_vi_pipe vi_pipe, ot_vi_pipe_frame_source *frame_source);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

frame_source

PIPE的数据来源。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

PIPE必须已创建。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_pipe_param

【描述】

设置PIPE参数。

【语法】

td_s32 ss_mpi_vi_set_pipe_param(ot_vi_pipe vi_pipe, const ot_vi_pipe_param *pipe_param);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

pipe_param

VI PIPE参数,详见结构体定义。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建。

  • 请务必先调用ss_mpi_vi_get_pipe_param获取当前参数,再进行设置操作。

【举例】

无。

【相关主题】

ss_mpi_vi_get_pipe_param

ss_mpi_vi_get_pipe_param

【描述】

获取PIPE参数。

【语法】

td_s32 ss_mpi_vi_get_pipe_param(ot_vi_pipe vi_pipe, ot_vi_pipe_param *pipe_param);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

pipe_param

VI PIPE参数,详见结构体定义。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

PIPE必须已创建。

【举例】

无。

【相关主题】

ss_mpi_vi_set_pipe_param

ss_mpi_vi_enable_pipe_stagger_out_split

【描述】

启用VI PIPE STAGGER模式输出拆分,只送stagger多帧中的第一帧往后处理。

【语法】

td_s32 ss_mpi_vi_enable_pipe_stagger_out_split(ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码。

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 只支持VI离线模式。

  • 启用本接口之前,需要先设置pipe_param 输出模式为stagger模式。

  • PIPE必须已创建,且必须在start pipe前调用该接口。

  • 调用本接口后,通过ss_mpi_vi_get_pipe_frame获取到的帧数据是stagger完整帧中的第一帧数据;使能本模式时,可使用ss_mpi_vi_get_pipe_fe_out_frame获取原始的完整帧数据。

【举例】

无。

【相关主题】

ss_mpi_vi_disable_pipe_stagger_out_split

【描述】

禁用VI PIPE STAGGER模式输出拆分。

【语法】

td_s32 ss_mpi_vi_disable_pipe_stagger_out_split(ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码。

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 只支持VI离线模式。

  • 调用本接口之前,需要先设置pipe_param 输出模式为stagger模式。

  • PIPE必须已创建,且必须在start pipe前调用该接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_pipe_bnr_buf_num

【描述】

设置VI PIPE bayernr buffer个数。

【语法】

td_s32 ss_ mpi_vi_set_pipe_bnr_buf_num(ot_vi_pipe vi_pipe, td_u32 buf_num);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

buf_num

Buffer 个数。

取值范围:[OT_VI_MIN_BNR_BUF_NUM, OT_VI_MAX_BNR_BUF_NUM]

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码。

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • 必须在pipe创建前使用,pipe创建后不可更改。

  • 本接口默认可不调用,buffer个数默认值为 40。

  • VPSS在线时不需要buffer个数。

【举例】

无。

【相关主题】

ss_mpi_vi_get_pipe_bnr_buf_num

ss_mpi_vi_get_pipe_bnr_buf_num

【描述】

获取VI PIPE bayernr buffer个数。

【语法】

td_s32 ss_mpi_vi_get_pipe_bnr_buf_num(ot_vi_pipe vi_pipe, td_u32 *buf_num);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

buf_num

Buffer 个数。

取值范围:[OT_VI_MIN_BNR_BUF_NUM, OT_VI_MAX_BNR_BUF_NUM]

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码。

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

无。

【举例】

无。

【相关主题】

ss_mpi_vi_set_pipe_bnr_buf_num

ss_mpi_vi_send_pipe_yuv

【描述】

通过VI PIPE发送YUV数据。

【语法】

td_s32 ss_mpi_vi_send_pipe_yuv(ot_vi_pipe vi_pipe, const ot_video_frame_info *frame_info, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

frame_info

VI帧信息结构体。具体描述请参见“系统控制”章节。

输入

milli_sec

超时参数milli_sec:

-1表示阻塞模式;

0表示非阻塞模式;

大于0表示超时模式,超时时间的单位为毫秒(ms)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建且启动。

  • 送YUV首先需要通过ss_mpi_vi_set_pipe_frame_source来设置PIPE的数据来源为OT_VI_PIPE_FRAME_SOURCE_USER。

  • YUV数据的宽高必须与PIPE属性的size的宽高保持一致。

  • 送下来的YUV帧信息必须为真实有效的VB。

  • YUV数据像素格式必须与PIPE属性的像素格式保持一致

  • YUV数据field必须为OT_VIDEO_FIELD_FRAME。

  • YUV数据video_format必须为OT_VIDEO_FORMAT_LINEAR。

  • YUV数据compress_mode必须为非压OT_COMPRESS_MODE_NONE。

  • YUV数据动态范围dynamic_range必须为OT_DYNAMIC_RANGE_SDR8。YUV数据色域必须为合法值[OT_COLOR_GAMUT_BT601,OT_COLOR_GAMUT_BUTT)。

  • WDR模式不支持本接口。

  • 从BE送YUV时,来自SENSOR的数据不会送给BE处理,BE只会处理用户送下来的帧数据。

  • VI在线VPSS在线模式、VI在线VPSS离线模式不支持本接口。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_send_pipe_raw

【描述】

通过VI PIPE发送RAW数据。

【语法】

td_s32 ss_mpi_vi_send_pipe_raw(ot_vi_pipe vi_pipe, const ot_video_frame_info *frame_info[], td_u32 frame_num, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

frame_info

RAW数据信息结构体指针数组

输入

frame_num

RAW数据的帧信息个数

输入

milli_sec

超时参数milli_sec:

-1表示阻塞模式;

0表示非阻塞模式;

大于0表示超时模式,超时时间的单位为毫秒(ms)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建且启动。

  • vi_pipe必须为wdr融合的主pipe号。

  • 送RAW首先需要通过ss_mpi_vi_set_pipe_frame_source来设置PIPE的数据来源为OT_VI_PIPE_FRAME_SOURCE_USER。

  • 送一帧处理一帧,不会循环处理。

  • WDR的所有PIPE为离线模式,每个PIPE的RAW存放的顺序必须是短中长帧的顺序,目的是保证长短曝光帧的顺序正确,每个PIPE的RAW的属性(宽高,像素格式,压缩等等)要保持一致。

  • PIPE属性的IspBypass必须为TD_FALSE。

  • 送下来的RAW帧信息必须为真实有效的VB。

  • RAW数据像素格式必须与PIPE属性的像素格式保持一致。

  • RAW数据field必须为OT_VIDEO_FIELD_FRAME。

  • RAW数据video_format必须为OT_VIDEO_FORMAT_LINEAR。

  • RAW数据compress_mode必须为OT_COMPRESS_MODE_NONE、OT_COMPRESS_MODE_LINE、OT_COMPRESS_MODE_FRAME。

  • RAW数据动态范围dynamic_range必须为OT_DYNAMIC_RANGE_SDR8。RAW数据色域必须为合法值[OT_COLOR_GAMUT_BT601,OT_COLOR_GAMUT_BUTT)。

  • VI在线VPSS在线模式、VI在线VPSS离线模式不支持本接口。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_query_pipe_status

【描述】

查询VI PIPE状态。

【语法】

td_s32 ss_mpi_vi_query_pipe_status(ot_vi_pipe vi_pipe, ot_vi_pipe_status *pipe_status);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

输入

pipe_status

PIPE状态信息。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • 当PIPE处于VI在线VPSS在线模式,VI在线VPSS离线模式,不支持使用本接口。

  • PIPE必须已创建。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_enable_pipe_interrupt

【描述】

启动VI 物理PIPE中断。

【语法】

td_s32 ss_mpi_vi_enable_pipe_interrupt(ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建。

  • 当PIPE处于VI在线,VPSS在线模式,不支持该接口。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

ss_mpi_vi_disable_pipe_interrupt

ss_mpi_vi_disable_pipe_interrupt

【描述】

禁用VI 物理PIPE中断。

【语法】

td_s32 ss_mpi_vi_disable_pipe_interrupt(ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建。

  • 当PIPE处于VI在线,VPSS在线模式,不支持该接口。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

ss_mpi_vi_enable_pipe_interrupt

ss_mpi_vi_set_pipe_vc_number

【描述】

设置VI 物理PIPE对接前端sensor或者AD的VC号。

【语法】

td_s32 ss_mpi_vi_set_pipe_vc_number(ot_vi_pipe vi_pipe, td_u32 vc_number);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI 物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

vc_number

VC号。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ss_mpi_vi.h

【注意】

  • 必须在PIPE创建后,使能之前调用。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_vc_number

【描述】

获取VI 物理PIPE对接前端sensor或者AD的VC号。

【语法】

td_s32 ss_mpi_vi_get_pipe_vc_number(ot_vi_pipe vi_pipe, td_u32 *vc_number);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI 物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

vc_number

VC号。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ss_mpi_vi.h

【注意】

  • 必须在PIPE创建后调用。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_pipe_low_delay_attr

【描述】

设置VI PIPE低延时属性。

【语法】

td_s32 ss_mpi_vi_set_pipe_low_delay_attr(ot_vi_pipe vi_pipe, const ot_low_delay_info *low_delay_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

ot_low_delay_info具体请参考“系统控制”章节。

输入

low_delay_info

低延时功能参数结构体。

静态属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • 只有VI离线模式下支持该功能。

  • PIPE低延时与PIPE帧压缩冲突,不能同时使用。

  • PIPE低延时没有one_buf功能,one_buf_en配置不生效。

  • 离线WDR模式下需保证多路pipe同时打开低延时开关,行号配置一致,否则会出现错帧融合的现象。

  • 离线多路时,开启多路PIPE低延时会影响系统性能,不建议开启多路PIPE低延时。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_low_delay_attr

【描述】

获取VI PIPE低延时属性。

【语法】

td_s32 ss_mpi_vi_get_pipe_low_delay_attr(ot_vi_pipe vi_pipe, ot_low_delay_info *low_delay_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

low_delay_info

低延时功能参数结构体。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • 只有VI离线模式下支持该功能。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_pipe_frame_interrupt_attr

【描述】

设置VI PIPE上报中断属性。

【语法】

td_s32 ss_mpi_vi_set_pipe_frame_interrupt_attr(ot_vi_pipe vi_pipe, const ot_frame_interrupt_attr *interrupt_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

interrupt_attr

中断属性结构体指针。ot_frame_interrupt_attr详情请查看“系统控制”章节。

静态属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已经创建。

  • 本接口必须在START PIPE前调用。

  • 仅支持OT_FRAME_INTERRUPT_START、OT_FRAME_INTERRUPT_EARLY和OT_FRAME_INTERRUPT_EARLY_END三种类型。

  • early_line用于设置VI硬件采集多少行后上报延时中断。

  • 调用本接口用于节省内存占用:

    • 使用START模式时,VI驱动正常采集,没有省内存效果;

    • 使用EARLY模式时,可通过调大early_line节省buffer占用时长,达到省内存的效果;

    • early_line设置越大,省一帧内存的概率越大,但early_line调至接近高度时,可能会出现配置跨帧导致的效果异常或者丢帧问题,建议early_line配置为采集高度-100;同时,early模式下VI采集中断响应数会增加一倍左右;

    • 使用EARLY_END模式时,配置early_line的效果同early模式;同时VI驱动会在采集END中断提前将帧信息送出,相比early模式更省内存,且减少了时序后消隐区的延时;early_end模式下VI采集中断响应数会增加两倍左右。

    • 单路采集时建议使用early模式+低延时模式,替代early_end模式,可起到即省内存,又更多的降低通路延时的作用。

  • 在线WDR模式下,离线pipe不支持使用本接口。

  • 离线WDR模式下配置early_end模式,由于改变了组帧时机,需保证多路pipe同时配置为early_end,否则可能会出现错帧融合的现象。

【举例】

无。

【相关主题】

ss_mpi_vi_get_pipe_frame_interrupt_attr

ss_mpi_vi_get_pipe_frame_interrupt_attr

【描述】

获取VI PIPE上报中断属性。

【语法】

td_s32 ss_mpi_vi_get_pipe_frame_interrupt_attr(ot_vi_pipe vi_pipe, ot_frame_interrupt_attr *interrupt_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

interrupt_attr

中断属性结构体指针。ot_frame_interrupt_attr详情请查看“系统控制”章节。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • 默认为OT_FRAME_INTERRUPT_START模式,延时行号为0;pipe销毁后会将中断属性重置为默认状态。

【举例】

无。

【相关主题】

ss_mpi_vi_set_pipe_frame_interrupt_attr

ss_mpi_vi_set_pipe_fisheye_cfg

【描述】

设置VI PIPE对应的鱼眼镜头LMF参数配置。

【语法】

td_s32 ss_mpi_vi_set_pipe_fisheye_cfg(ot_vi_pipe vi_pipe, const ot_fisheye_cfg *fisheye_cfg);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

fisheye_cfg

鱼眼镜头LMF参数结构体,具体描述请参考“几何畸变矫正子系统”章节。

静态属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_gdc.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • VI在线VPSS在线模式、VI离线VPSS在线模式,不支持本接口。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_pipe_fisheye_cfg

【描述】

获取VI PIPE对应的鱼眼镜头LMF参数配置。

【语法】

td_s32 ss_mpi_vi_get_pipe_fisheye_cfg(ot_vi_pipe vi_pipe, ot_fisheye_cfg *fisheye_cfg);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

fisheye_cfg

鱼眼镜头LMF参数结构体,具体描述请参考“几何畸变矫正子系统”章节。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_gdc.h、ss_mpi_vi.h

【注意】

  • PIPE必须已创建。

  • VI在线VPSS在线模式、VI离线VPSS在线模式,不支持本接口。

【举例】

【相关主题】

ss_mpi_vi_get_pipe_compress_param

【描述】

获取VI物理 PIPE的RAW压缩参数。

【语法】

td_s32 ss_mpi_vi_get_pipe_compress_param(ot_vi_pipe vi_pipe, ot_vi_compress_param *compress_param);

【参数】

参数名称

描述

输入/输出

vi_pipe

物理PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

compress_param

压缩参数的结构体。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 物理PIPE必须已创建。

  • 若物理PIPE是非压,则返回失败。

  • 虚拟PIPE不支持。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_user_pic

【描述】

设置用户图片,作为无视频信号时的插入图片。

【语法】

td_s32 ss_mpi_vi_set_user_pic(ot_vi_pipe vi_pipe, const ot_video_frame_info *user_pic_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

user_pic_info

用户图片信息结构体。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 只支持VI离线模式。

  • WDR模式下从pipe不支持设置用户图片。

  • 此接口只支持YUV图像模式,纯色模式需要用户分配VB调用VGS打COVER实现。

  • 设置VI用户图片,用于将VI通道输出的视频帧图像修改为用户配置的指定YUV图像数据,而不是codec的视频数据;此接口需要与ss_mpi_vi_enable_user_pic、ss_mpi_vi_disable_user_pic配合使用。

  • 当前端无时序时,用户图片的帧率依赖于PIPE属性里面的目标帧率配置,如果PIPE属性的目标帧率设置成15帧,这个PIPE的用户图片的帧率则为15帧,通道帧率则根据通道属性的帧率来确定。如果PIPE属性的目标帧率设置成-1,用户图片的帧率则为30帧。当前端有时序时,用户图片的帧率由前端时序帧率和目标帧率配置共同决定。

  • 设置完用户图片后,即可调用ss_mpi_vi_enable_user_pic接口对指定VI PIPE启用插入用户图片,此时VI PIPE的通道输出的数据即为所配置的图片YUV数据;一般用于视频信号丢失时,VI PIPE的通道输出NoVideo图片。

    配置的用户图片的宽高必须与VI PIPE大小相一致。

  • 用户图片的视频帧信息结构中,需要设置图片的宽度、高度、行间隔、YUV格式以及Y分量和C分量数据的物理地址;可以从MPP公共缓冲池中获取一块相应大小的视频缓存块,从缓存块信息中得到存放YUV数据的物理地址,然后将物理地址映射到用户空间,即可对这块内存进行YUV数据的填充操作;填充数据时需要遵循先存Y分量数据,再存UV分量间插数据的存储顺序(小端字节序先V后U)。

  • VI模块在启用插入用户图片时,会直接使用设置的用户图片帧信息中的物理地址,因此设置完用户图片后,不应该释放或销毁其视频缓存块,除非确认不再使用。可以通过再次调用此接口设置另外一块 VideoBuffer以修改图片信息。

  • 此功能与灌图功能互斥。若开启用户图片的同时,设置frame_source为user进行PIPE灌图,则实际输出的为pipe灌图数据。

  • 图像模式送下来的YUV帧信息必须为真实有效的VB。

  • 图像模式YUV数据像素格式支持OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420、OT_PIXEL_FORMAT_YVU_SEMIPLANAR_422、OT_PIXEL_FORMAT_YUV_400。

  • 图像模式YUV数据field必须为OT_VIDEO_FIELD_FRAME。

  • 图像模式YUV数据video_format必须为OT_VIDEO_FORMAT_LINEAR。

  • 图像模式YUV数据compress_mode必须为非压OT_COMPRESS_MODE_NONE。

  • 图像模式YUV数据动态范围dynamic_range必须为OT_DYNAMIC_RANGE_SDR8。

  • 图像模式YUV数据色域必须为合法值[OT_COLOR_GAMUT_BT601,OT_COLOR_GAMUT_BUTT)。

【相关主题】

ss_mpi_vi_enable_user_pic

【描述】

启用VI PIPE插入用户图片。

【语法】

td_s32 ss_mpi_vi_enable_user_pic(ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 只支持VI离线模式。

  • 启用插入用户图片之前,需要先设置用户图片帧信息。

  • 启用插入用户图片之后,当前VI PIPE的通道即输出配置的用户图片帧数据。

  • PIPE必须已创建。

  • 此接口可以重复调用。

  • 使能用户图片时,设置的图片数据会经过BE处理,会导致有些功能无法支持。

【举例】

无。

【相关主题】

ss_mpi_vi_disable_user_pic

【描述】

禁用VI PIPE插入用户图片。

【语法】

td_s32 ss_mpi_vi_disable_user_pic(ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PHYS_PIPE_NUM)

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

  • 只支持VI离线模式。

  • VI通道不再需要输出用户图片时,应该调用此接口以恢复输出AD的原始视频数据。

  • 此接口可以重复调用。

  • PIPE必须已创建。

【举例】

无。

【相关主题】

ss_mpi_vi_pipe_set_vb_src

【描述】

设置VI PIPE的VB来源。

【语法】

td_s32 ss_mpi_vi_pipe_set_vb_src(ot_vi_pipe vi_pipe, ot_vb_src vb_src);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vb_src

VB来源结构体指针。

ot_vb_src具体请参考 “系统控制章节”。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 本接口需要在创建PIPE之后调用。

  • 支持动态配置vb来源。

  • vb来源只能设置为OT_VB_SRC_COMMON,OT_VB_SRC_USER。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_pipe_get_vb_src

【描述】

获取VI PIPE的VB来源。

【语法】

td_s32 ss_mpi_vi_pipe_get_vb_src(ot_vi_pipe vi_pipe, ot_vb_src *vb_src);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vb_src

VB来源结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

PIPE必须已创建。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_pipe_attach_vb_pool

【描述】

将VI的PIPE绑定到某个视频缓存VB池中。

【语法】

td_s32 ss_mpi_vi_pipe_attach_vb_pool(ot_vi_pipe vi_pipe, ot_vb_pool vb_pool);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vb_pool

视频缓存VB池信息。具体请参见“系统控制”章节。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【需求】

  • 头文件:ss_mpi_vi.h、ot_common_vi.h

  • 库文件:libss_mpi.a

【解决方案差异】

无。

【注意】

  • PIPE必须已创建。

  • 用户通常调用接口ss_mpi_vb_create_pool(参见“系统控制”章节)创建一个视频缓存VB池,再通过调用本接口把当前PIPE绑定到固定PoolId的VB池中。支持多个PIPE绑定到同一个VB池中。

  • 当要切换当前组绑定的VB池时,只需再调一次本接口正确配置需要绑定到的VB池即可。

  • vb_pool必须保证是已创建VB池的有效PoolId。

  • 在调用ss_mpi_vi_pipe_detach_vb_pool后,销毁创建的VB之前,需要保证VB没有被VI后端绑定的模块使用,可以通过sleep或清除后端模块通道缓存的方式先把VB都释放,再销毁缓存VB池。

  • 需要配合ss_mpi_vi_pipe_set_vb_src接口使用,可以动态切换。

    • 使用绑定用户VB池的方式,必须设置vb_src为OT_VB_SRC_USER。

    • 使用公共VB池的方式,必须设置vb_src为OT_VB_SRC_COMMON。

  • UserVB大小根据PIPE输出图像计算,具体计算公式参考ot_buffer.h。

【举例】

无。

【相关主题】

ss_mpi_vi_pipe_detach_vb_pool

【描述】

将VI的PIPE从某个视频缓存VB池中解绑定。

【语法】

td_s32 ss_mpi_vi_pipe_detach_vb_pool(ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【需求】

  • 头文件:ss_mpi_vi.h、ot_common_vi.h

  • 库文件:libss_mpi.a

【解决方案差异】

无。

【注意】

PIPE必须已创建。

【举例】

无。

【相关主题】

ss_mpi_vi_pipe_attach_vb_pool

ss_mpi_vi_get_pipe_fd

【描述】

获取VI PIPE文件描述符。

【语法】

td_s32 ss_mpi_vi_get_pipe_fd(ot_vi_pipe vi_pipe);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

【返回值】

返回值

描述

正数值

有效返回值。

非正数值

无效返回值。

【解决方案差异】

无。

【需求】

头文件:ss_mpi_vi.h

【注意】

无。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_chn_attr

【描述】

设置VI通道属性。

【语法】

td_s32 ss_mpi_vi_set_chn_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_vi_chn_attr *chn_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

chn_attr

VI通道属性结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

通道属性的各项配置限制如下:

  • 目标图像大小size:

    • 必须配置,且大小需要在VI支持的范围。

    • 通道不支持缩放,通道size必须和pipe属性配置的size一致。

  • 像素格式pixel_format:

    • 输出像素格式支持semi-planar YVU420/semi-planar YVU422/YUV400和raw8/raw10/raw12/raw14/raw16格式。

    • Rotation功能开启时,输出像素格式只支持semi-planar YVU420和YUV400。

    • PIPE格式为semi-planar YUV时,通道输出格式不能为raw格式。

    • 通道输出格式为raw格式时,不能支持mirror/flip。

    • 通道输出格式为raw格式时,不支持所有的通道后处理功能(DIS/LDC/Rotate等)。

    • VPSS在线时不支持配置为raw格式。

  • 动态范围dynamic_range:

    • DYNAMIC_RANGE_SDR8表示的是8bit数据,其余为10bit数据。

    • VI只支持DYNAMIC_RANGE_SDR8。

    • 色域信息由ISP的CSC控制。

  • 视频数据格式video_format:

    所有通道都支持OT_VIDEO_FORMAT_LINEAR格式。

  • 压缩模式compress_mode:

    支持段压缩OT_COMPRESS_MODE_SEG;

    支持紧凑段压缩OT_COMPRESS_MODE_SEG_COMPACT;

    支持非压缩OT_COMPRESS_MODE_NONE。

    通道图像宽度超过4096不支持紧凑段压缩。

    输出格式为raw格式时不支持压缩。

  • 帧率控制frame_rate_ctrl:

    • 原始帧率src_frame_rate:如果不进行帧率控制,则该值设置为-1。

    • 目标帧率dst_frame_rate:如果不进行帧率控制,则该值设置为-1,否则必须设置原始帧率src_frame_rate的值,且目标帧率必须小于或等于原始帧率。

  • PIPE必须已创建,否则会返回失败。

  • 物理通道开启紧凑段压缩后,不支持做CoverEX与OverlayEX的处理,以及LDC,SPREAD等GDC的处理。

  • 通道FLIP使能与通道低延时功能互斥,不支持同时使用。

  • 通道图像宽度超过4096不支持MIRROR使能。

【举例】

无。

【相关主题】

ss_mpi_vi_get_chn_attr

ss_mpi_vi_get_chn_attr

【描述】

获取VI通道属性。

【语法】

td_s32 ss_mpi_vi_get_chn_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_vi_chn_attr *chn_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

chn_attr

VI通道属性结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 通道属性需先设置后,才可获取。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_attr

ss_mpi_vi_set_ext_chn_attr

【描述】

设置VI扩展通道属性。

【语法】

td_s32 ss_mpi_vi_set_ext_chn_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_vi_ext_chn_attr *ext_chn_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[OT_VI_MAX_PHYS_CHN_NUM, OT_VI_MAX_CHN_NUM)

输入

ext_chn_attr

扩展通道属性结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 扩展通道的输入绑定源必须为物理通道。

  • 扩展通道以绑定的方式连接物理通道,每个扩展通道最多绑定一个物理通道。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

  • 扩展通道开启紧凑段压缩后,不支持做CoverEX与OverlayEX的处理,即使设置CoverEX/OverlayEX也不会生效。

  • 扩展通道的图像来源属性设置为OT_EXT_CHN_SRC_TYPE_HEAD(请参考”系统控制”章节)时,被绑定的物理通道不支持做CoverEX与OverlayEX处理,即使设置CoverEX/OverlayEX也不会生效。

【举例】

无。

【相关主题】

ss_mpi_vi_get_ext_chn_attr

ss_mpi_vi_get_ext_chn_attr

【描述】

获取VI扩展通道属性。

【语法】

td_s32 ss_mpi_vi_get_ext_chn_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_vi_ext_chn_attr *ext_chn_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[OT_VI_MAX_PHYS_CHN_NUM, OT_VI_MAX_CHN_NUM)

输入

ext_chn_attr

扩展通道属性结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 扩展通道属性需先设置后,才可获取。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_ext_chn_attr

ss_mpi_vi_enable_chn

【描述】

启用VI通道。

【语法】

td_s32 ss_mpi_vi_enable_chn(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 必须先设置通道属性。

  • 可重复启用VI通道,不返回失败。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,启动VI通道不生效,直接返回成功。

【举例】

无。

【相关主题】

ss_mpi_vi_disable_chn

ss_mpi_vi_disable_chn

【描述】

禁用VI通道。

【语法】

td_s32 ss_mpi_vi_disable_chn(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 可重复禁用VI通道,不返回失败。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,禁用VI通道不生效,直接返回成功。

【举例】

无。

【相关主题】

ss_mpi_vi_enable_chn

ss_mpi_vi_set_chn_crop

【描述】

设置VI通道裁剪功能属性。

【语法】

td_s32 ss_mpi_vi_set_chn_crop(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_vi_crop_info *crop_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

crop_info

裁剪功能参数结构体。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 物理通道开启Gme Dis/Hybrid Dis/Ldc/Spread/Rotation/Fisheye后,为防止这些功能的输入图像大小发生变化,要求不能再设置裁剪属性。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

  • 通道开启压缩且图像宽度大于4096时,不支持本接口。

  • 通道开启低延时时,crop_info裁剪的高度不能小于低延时行号。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_chn_crop

【描述】

获取VI通道裁剪功能属性。

【语法】

td_s32 ss_mpi_vi_get_chn_crop(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_vi_crop_info *crop_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

crop_info

裁剪功能参数结构体。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_chn_rotation

【描述】

设置VI图像旋转属性。

【语法】

td_s32 ss_mpi_vi_set_chn_rotation(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_rotation_attr *rotation_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI物理通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

rotation_attr

旋转属性,具体描述请参见“系统控制”章节。

动态属性

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • 必须在设置通道属性后才能设置此属性。

  • 支持非场输出的semi-planar 420和YUV400图像的旋转。

  • 仅支持90度、180度、270度的旋转、任意角度旋转和高精度任意角度旋转。

  • 设置旋转后,物理通道输出的宽高可能会发生变化,但获取的通道属性中的通道宽高仍为用户设置值。比如720p输入的图像,在旋转90度、270度时,实际输出的图像大小为720x1280,但ss_mpi_vi_get_chn_attr获取的DestSize宽高仍为1280x 720。

  • 开启固定角度旋转时,物理通道属性的压缩模式必须配置为非压缩。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_chn_rotation

【描述】

获取VI图像旋转属性。

【语法】

td_s32 ss_mpi_vi_get_chn_rotation(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_rotation_attr *rotation_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI物理通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

rotation_attr

旋转属性,具体描述请参见“系统控制”章节。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_rotation

ss_mpi_vi_set_chn_ldc_attr

【描述】

设置VI镜头畸变校正(LDC)属性。

【语法】

td_s32 ss_mpi_vi_set_chn_ldc_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_ldc_attr *ldc_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI物理通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

ldc_attr

LDC属性结构体指针。

动态属性

ot_ldc_attr具体请参考“系统控制”章节。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • 该接口必须在设置通道属性后调用。

  • 仅支持非场输出的图像。

  • 仅支持物理通道的LDC设置。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

  • 当开启展宽(Spread)时候,LDC V1的distortion_ratio取值范围只能为 [0, 500],即只支持LDC的桶形模式。

  • 由于LDC会对图像进行几何拉伸或几何压缩,当输入图像存在明显噪声,在桶型矫正过后,可能存在图像四周噪声颗粒变大(四周被拉伸)的现象。可将LDC配置于3DNR之后改善此现象,即调用VPSS的接口ss_mpi_vpss_set_chn_ldc_attr(此接口具体请参考“视频处理子系统”章节)代替此接口来配置LDC。

  • SS928V100开启LDC V2功能,需要加载ss928v100_gyrodis.ko文件;

  • LDC V2不能跟4轴或6轴DIS同时使用;

  • 使用Gyro DIS时,必须设置LDC V2参数,请参考《图像质量调试工具使用指南》“DIS标定工具使用说明”章节。

    • 场景一:LDC V2+Gyro DIS效果,DIS设置为TRUE,LDC设置为TRUE。

    • 场景二:单独Gyro DIS效果,DIS设置为TRUE,LDC设置为FALSE。

    • 场景三:单独LDC V2效果,DIS设置为FALSE,LDC设置为TRUE。

  • LDC V2和LDC V3的参数需使用标定工具的参数,而不能用随意配置的参数。

  • LDC矫正有最小的宽高限制:OT_LDC_MIN_IMAGE_WIDTH,OT_LDC_MIN_IMAGE_HEIGHT请参考“几何畸变矫正子系统”。

【举例】

无。

【相关主题】

ss_mpi_vi_get_chn_ldc_attr

【描述】

获取VI镜头畸变校正(LDC)属性。

【语法】

td_s32 ss_mpi_vi_get_chn_ldc_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_ldc_attr *ldc_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI物理通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

ldc_attr

LDC属性结构体指针。

具体请参考“系统控制”章节。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_ldc_attr

ss_mpi_vi_ldc_pos_query_dst_to_src

【描述】

根据镜头畸变校正(LDC)的输出图像坐标点查找输入图像的坐标点。

【语法】

td_s32 ss_mpi_vi_ldc_pos_query_dst_to_src(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_point *dst_point, ot_point *src_point);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

dst_point

镜头畸变校正输出图像上需要查找映射关系的坐标点

输入

src_point

镜头畸变校正输入图像上查找到的坐标点

ot_point具体请参考“系统控制”章节。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h、ot_common_video.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 该接口仅支持OT_LDC_V1版本的LDC矫正。

  • 必须LDC使能之后再调用,否则会返回失败。

  • 使能LDC后,如果需要变动参数,要遵循参数变动、获取校正图像和启动坐标点查询的先后原则。如果在LDC参数变动之前就获取了矫正图像,可能导致查找到错误的坐标点。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_ldc_attr

ss_mpi_vi_ldc_pos_query_src_to_dst

【描述】

根据镜头畸变校正(LDC)的输入图像坐标点查找输出图像的坐标点。

【语法】

td_s32 ss_mpi_vi_ldc_pos_query_src_to_dst(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_point *src_point, ot_point *dst_point);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

src_point

镜头畸变校正输入图像上需要查找映射关系的坐标点

输入

dst_point

镜头畸变校正输出图像上查找到的坐标点

ot_point具体请参考“系统控制”章节。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h、ot_common_video.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 该接口仅支持OT_LDC_V1版本的LDC矫正。

  • 必须LDC使能之后再调用,否则会返回失败。

  • 使能LDC后,如果需要变动参数,要遵循参数变动、获取校正图像和启动坐标点查询的先后原则。如果在LDC参数变动之前就获取了矫正图像,可能导致查找到错误的坐标点。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_ldc_attr

ss_mpi_vi_set_chn_spread_attr

【描述】

设置VI通道展宽属性。

【语法】

td_s32 ss_mpi_vi_set_chn_spread_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_spread_attr *spread_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI物理通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

spread_attr

展宽属性结构体指针,具体请参考“系统控制”章节。

动态属性

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_video.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • 该接口必须在设置通道属性后调用。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

  • 当开启展宽(Spread)时候,LDC的distortion_ratio取值范围只能为 [0, 500],即只支持LDC的桶形模式。

  • 展宽有最小输出宽高限制:OT_SPREAD_MIN_IMAGE_WIDTH等请参考“几何畸变矫正子系统”。

【举例】

无。

【相关主题】

ss_mpi_vi_get_chn_spread_attr

【描述】

获取VI通道展宽属性。

【语法】

td_s32 ss_mpi_vi_get_chn_spread_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_spread_attr *spread_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI物理通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

spread_attr

展宽属性结构体指针,具体请参考“系统控制”章节。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_video.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_fisheye

【描述】

设置VI通道对应的鱼眼属性。

【语法】

td_s32 ss_mpi_vi_set_chn_fisheye(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_fisheye_correction_attr *correction_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

correction_attr

VI通道的鱼眼属性结构体指针,具体描述请参考“几何畸变矫正子系统”章节。

动态属性

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败

  • 调用本接口前物理通道属性已配置。

  • 开启了鱼眼矫正后,不支持动态改变通道Crop属性、通道旋转属性以及通道宽高属性。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

  • 鱼眼校正三种校正模式:

    • 360全景模式支持地装和顶装;

    • 180全景模式支持壁装;

    • normal模式支持地装,顶装,壁装。

  • 鱼眼矫正有最小的输入输出宽高限制:OT_FISHEYE_MIN_IN_IMAGE_HEIGHT等请参考“几何畸变矫正子系统”。

【举例】

无。

【相关主题】

ss_mpi_vi_get_chn_fisheye

ss_mpi_vi_get_chn_fisheye

【描述】

获取VI通道对应的鱼眼属性。

【语法】

td_s32 ss_mpi_vi_get_chn_fisheye(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_fisheye_correction_attr *correction_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

correction_attr

VI通道的鱼眼属性结构体指针,具体描述请参考“几何畸变矫正子系统”章节。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 必需先设置才能获取,否则会获取失败。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_fisheye

ss_mpi_vi_fisheye_pos_query_dst_to_src

【描述】

根据鱼眼校正输出图像坐标点查找源图像坐标点。

【语法】

td_s32 ss_mpi_vi_fisheye_pos_query_dst_to_src(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, td_u32 region_index, const ot_point *dst_point, ot_point *src_point);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

region_index

鱼眼校正区域号。

取值范围:[0, OT_FISHEYE_MAX_RGN_NUM - 1]

OT_FISHEYE_MAX_RGN_NUM具体描述请参考“几何畸变矫正子系统”章节。

输入

dst_point

鱼眼校正图上需要查找映射关系的坐标点

输入

src_point

鱼眼原图上查找到的坐标点

ot_point具体请参考“系统控制”章节。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 必须鱼眼校正启动之后再调用,否则会返回失败。

  • 启动鱼眼矫正后,如果需要变动参数,要遵循参数变动、获取校正图像和启动坐标点查询的先后原则。如果在鱼眼参数变动之前就获取了矫正图像,可能导致查找到错误的坐标点。

  • 多区域时,每个区域的坐标点按照每个区域单独计算,不能按照拼接之后的图像来计算。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_chn_rgn_luma

【描述】

获取指定图像区域的亮度总和。该接口主要用于对遮挡区域进行亮度和统计,根据统计的亮度,进行反色处理,使遮挡区域更加明显。

【语法】

td_s32 ss_mpi_vi_get_chn_rgn_luma(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, td_u32 num, const ot_rect *rgn, td_u64 *luma_data, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0,OT_VI_MAX_PHYS_CHN_NUM)

输入

num

统计区域的个数

输入

rgn

区域信息,即起始位置、宽、高。

输入

luma_data

接收区域亮度和统计信息的内存指针,该内存大小应该大于或等于sizeof(td_u64)×num。

输出

milli_sec

超时参数milli_sec:

-1表示阻塞模式;

0表示非阻塞模式;

大于0表示超时模式,超时时间的单位为毫秒(ms)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 此接口针对的是VI通道的输出图像。获取亮度统计信息的时机是这些图像被用户获取或被发送到后端模块之前。

  • 统计区域的起始坐标的确定分两种情况:如果不使能CROP,则起始坐标相对于原始图像的左上角坐标;如果使能CROP,则起始坐标相对于CROP以后的图像的左上角坐标。统计区域不得超出原始图像或CROP之后的图像区域。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_chn_dis_cfg

【描述】

设置VI通道的DIS配置信息。

【语法】

td_s32 ss_mpi_vi_set_chn_dis_cfg(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_dis_cfg *dis_cfg);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

dis_cfg

DIS配置信息结构体。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ot_common_dis.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 在DIS使能且scale为TRUE时,crop_ratio参数可以动态修改,其他情况要修改dis_cfg中参数时,必须先关闭DIS再修改参数,不可动态修改。

  • 1路pipe只支持1路通道防抖。

  • 最多支持4路陀螺仪防抖。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_get_chn_dis_cfg

ss_mpi_vi_get_chn_dis_cfg

【描述】

获取VI通道的DIS配置信息。

【语法】

td_s32 ss_mpi_vi_get_chn_dis_cfg(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_dis_cfg *dis_cfg);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

dis_cfg

DIS配置信息结构体。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ot_common_dis.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_dis_cfg

ss_mpi_vi_set_chn_dis_attr

【描述】

设置VI通道的DIS属性。

【语法】

td_s32 ss_mpi_vi_set_chn_dis_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_dis_attr *dis_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

dis_attr

DIS属性结构体指针。

动态属性

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ot_common_dis.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 必须先使能VI通道和设置DIS 配置后,才能设置DIS属性。

  • 1个PIPE只能使能一个通道的DIS功能。

  • 最多支持4路陀螺仪防抖。

  • 陀螺仪防抖场景不建议开启通道crop功能,否则会有效果问题。

  • 使能GME DIS后,不支持开启对应物理通道的Mirror和Flip功能。

  • 使能DIS,对应的通道不能使能裁剪功能,如果要裁剪后的图像做DIS,建议在前端MIPI或者ISP做裁剪。

  • 使能DIS,同时DIS参数中scale=FALSE时候,不支持同时开启自由角度旋转属性。

  • 修改DIS配置或修改通道的size和dynamic_range属性,必须先关闭DIS。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

  • GME DIS不支持低延时,VI开启通道低延时再打开GME DIS,会将VI输出低延时自适应关闭。

  • 使用HYBRID_DIS需要调用DSP相关接口加载对应的DSP Bin,具体参考《SVP2.0 API 参考》;使用HYBRID_DIS功能时不能操作DSP下电和去使能DSP核,否则会导致挂死。

  • 使用HYBRID_DIS需要调用ss_mpi_gdc_set_dsp_lut_cfg接口开启is_dsp_lut_support,并绑定DSP核。

【举例】

无。

【相关主题】

ss_mpi_vi_get_chn_dis_attr

【描述】

获取VI通道的DIS属性。

【语法】

td_s32 ss_mpi_vi_get_chn_dis_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_dis_attr *dis_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

dis_attr

DIS属性结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ot_common_dis.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • 建议先设置DIS属性后,再使用该接口。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_dis_cfg

ss_mpi_vi_set_chn_dis_param

【描述】

设置VI通道的DIS可选参数。

【语法】

td_s32 ss_mpi_vi_set_chn_dis_param(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_dis_param *dis_param);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

dis_param

DIS可选参数结构体。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ot_common_dis.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

  • 该接口为可选调用,可以调整GME模式下的防抖效果,不调用使用默认值。

  • 参数只在GME模式下有效果,GYRO模式下无效。

【举例】

无。

【相关主题】

ss_mpi_vi_get_chn_dis_param

【描述】

获取VI通道的DIS的可选参数。

【语法】

td_s32 ss_mpi_vi_get_chn_dis_param(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_dis_param *dis_param);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

dis_param

DIS可选参数结构体。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ot_common_dis.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

  • 参数只在GME模式下有效果,GYRO模式下无效。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_dis_wdr_attr

【描述】

设置VI通道的DIS WDR属性。

【语法】

td_s32 ss_mpi_vi_set_chn_dis_wdr_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_dis_wdr_attr *dis_wdr_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

dis_wdr_attr

DIS WDR属性结构体指针。

动态属性。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ot_common_dis.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

  • 参数只在GYRO模式下有效果,GME模式下无效。参数只在wdr_mode为2to1 wdr、3to1 wdr模式下有效果。

  • 在fswdr_mode为OT_ISP_FSWDR_LONG_FRAME_MODE模式时固定匹配长帧,参数设置无效;fswdr_mode为OT_ISP_FSWDR_AUTO_LONG_FRAME_MODE模式时,若切换到了长帧模式,也会固定匹配长帧,此时参数设置无效。

  • 该接口为可选调用,不调用使用默认值,开启WDR和GYRO_DIS后默认 match_frame 为长帧。

  • 使用dis_wdr_attr功能时需要调用ss_mpi_vb_set_supplement_cfg(请参考“系统控制”章节)接口添加VB的图像运动附加信息,对应的MASK为OT_VB_SUPPLEMENT_MOTION_DATA_MASK。

  • match_frame 参数含义:WDR模式为2TO1时,0为匹配短帧,1为匹配长帧;WDR模式为3TO1时,0为短帧,1为中帧,2为长帧。

  • WDR模式的陀螺仪防抖主要针对匹配帧图像作防抖矫正,非匹配帧部分的图像防抖效果差于预期的陀螺仪防抖效果。

【举例】

无。

【相关主题】

ss_mpi_vi_get_chn_dis_wdr_attr

ss_mpi_vi_get_chn_dis_wdr_attr

【描述】

获取VI通道的DIS WDR属性。

【语法】

td_s32 ss_mpi_vi_get_chn_dis_wdr_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_dis_wdr_attr *dis_wdr_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

dis_wdr_attr

DIS WDR属性结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ot_common_dis.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

  • 参数只在GYRO模式下有效果,GME模式下无效。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_dis_wdr_attr

ss_mpi_vi_set_chn_fov_correction_attr

【描述】

设置VI通道的视场角矫正属性。

【语法】

td_s32 ss_mpi_vi_set_chn_fov_correction_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_vi_fov_correction_attr *fov_correction_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

fov_correction_attr

视场角矫正的结构体。

取值范围请参考《黑白彩色双路融合 开发参考》文档。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

  • 开启视场角矫正后,通道的GME DIS、ROTATION、SPREAD功能不生效。

  • 开启视场角矫正后,支持GME DIS的still crop模式。

【举例】

无。

【相关主题】

ss_mpi_vi_get_chn_fov_correction_attr

ss_mpi_vi_get_chn_fov_correction_attr

【描述】

获取VI通道的视场角矫正属性。

【语法】

td_s32 ss_mpi_vi_get_chn_fov_correction_attr (ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_vi_fov_correction_attr *fov_correction_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

fov_correction_attr

视场角矫正的结构体。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_fov_correction_attr

ss_mpi_vi_get_chn_frame

【描述】

从VI通道获取采集的图像。

【语法】

td_s32 ss_mpi_vi_get_chn_frame(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_video_frame_info *frame_info, td_s32 milli_sec);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

frame_info

VI帧信息结构体。具体描述请参见“系统控制”章节。

输出

milli_sec

超时参数milli_sec:

-1表示阻塞模式;

0表示非阻塞模式;

大于0表示超时模式,超时时间的单位为毫秒(ms)。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建,否则会返回失败。

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

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

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

  • 获取的物理地址信息来自MPP内部使用的VideoBuffer,因此使用完之后,必须要调用ss_mpi_vi_release_chn_frame 接口释放其内存。

  • phys_addr[0]和phys_addr[1]分别指向图像的亮度分量和色度分量的物理地址。

  • 调用该接口获取图像,不会对后端绑定的模块有影响。如后端绑定VO显示,可以在显示过程中获取图像,VO仍正常显示,不会受到影响。

  • 当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec大于0时,表示非阻塞模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_release_chn_frame

【描述】

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

【语法】

td_s32 ss_mpi_vi_release_chn_frame(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_video_frame_info *frame_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

具体描述请参见“系统控制”章节。

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

具体描述请参见“系统控制”章节。

输入

frame_info

VI帧信息结构体。

具体描述请参见“系统控制”章节。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 此接口必须与ss_mpi_vi_get_chn_frame配对使用。

  • 用户必须保证frame_info结构中的信息与获取时一致,否则可能造成释放不成功。

【举例】

无。

【相关主题】

ss_mpi_vi_get_chn_frame

ss_mpi_vi_set_chn_low_delay_attr

【描述】

设置VI通道低延时属性。

【语法】

td_s32 ss_mpi_vi_set_chn_low_delay_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_low_delay_info *low_delay_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

low_delay_info

低延时功能参数结构体。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • 只有VI在线VPSS离线、VI离线VPSS离线模式下支持该功能。

  • 低延时按最小延时的策略来做自适应。

  • 当通道设置chn_crop时,低延时行号应小于通道crop的高度。

  • chn低延时没有one_buf功能,one_buf_en配置不生效。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_chn_low_delay_attr

【描述】

获取VI通道低延时属性。

【语法】

td_s32 ss_mpi_vi_get_chn_low_delay_attr(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_low_delay_info *low_delay_info);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

low_delay_info

低延时功能参数结构体。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • 只有VI在线VPSS离线、VI离线VPSS离线模式下支持该功能。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_chn_align

【描述】

设置VI通道输出YUV数据的行stride对齐。

【语法】

td_s32 ss_mpi_vi_set_chn_align(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, td_u32 align);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

align

VI通道输出YUV数据的行stride对齐,单位为Byte。

取值范围:[0, 1024]

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • align为0时stride对齐使用自动模式,对齐要求跟随系统。

  • align为非0时使用指定的stride对齐。

  • 当align小于芯片要求的stride对齐时,系统分配buffer和计算stride还是以芯片要求stride对齐为准。

  • 当align不等于芯片要求的stride对齐倍数时,系统分配buffer和计算stride向上对齐到芯片要求stride对齐的倍数。

    例:align设置为48,芯片要求32对齐时,系统分配buffer和计算stride时使用64对齐。

  • 拍照后处理算法输入的YUV数据stride需要128Bytes对齐,因此需要调用本接口配置VI输出的YUV数据stride对齐。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_get_chn_align

ss_mpi_vi_get_chn_align

【描述】

获取VI通道输出YUV数据的行stride对齐。

【语法】

td_s32 ss_mpi_vi_get_chn_align(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, td_u32 *align);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

align

VI通道输出YUV数据的行stride对齐,单位为Byte。

取值范围:[0, 1024]

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • PIPE必须已创建。

  • VI在线VPSS在线模式、VI离线VPSS在线模式下,不支持本接口。

【举例】

无。

【相关主题】

ss_mpi_vi_set_chn_align

ss_mpi_vi_chn_set_vb_src

【描述】

设置VI通道使用VB的来源。

【语法】

td_s32 ss_mpi_vi_chn_set_vb_src(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_vb_src vb_src);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

vb_src

VB来源结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

无。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_chn_get_vb_src

【描述】

获取VI通道使用VB的来源。

【语法】

td_s32 ss_mpi_vi_chn_get_vb_src(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_vb_src *vb_src);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)。

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

vb_src

VB来源结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

无。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_chn_attach_vb_pool

【描述】

将VI PIPE的通道绑定到某个视频缓存VB池中。

【语法】

td_s32 ss_mpi_vi_chn_attach_vb_pool(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_vb_pool vb_pool);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

vb_pool

视频缓存VB池信息。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【需求】

  • 头文件:ss_mpi_vi.h、ot_common_vi.h

  • 库文件:libss_mpi.a

【解决方案差异】

无。

【注意】

  • PIPE必须已创建。

  • 用户通常调用接口ss_mpi_vb_create_pool(参见“系统控制”章节)创建一个视频缓存VB池,再通过调用本接口把当前CHN绑定到固定PoolId的VB池中。支持多个CHN绑定到同一个VB池中。

  • 当要切换当前组绑定的VB池时,只需再调一次接口本接口正确配置需要绑定到的VB池即可。

  • vb_pool必须保证是已创建VB池的有效PoolId。

  • 在调用ss_mpi_vi_chn_detach_vb_pool后,销毁创建的VB之前,需要保证VB没有被VI后端绑定的模块使用,可以通过sleep或清除后端模块通道缓存的方式先把VB都释放,再销毁缓存VB池。

  • 需要配合ss_mpi_vi_chn_set_vb_src接口使用,可以动态切换。

    • 使用绑定用户VB池的方式,必须设置vb_src为OT_VB_SRC_USER。

    • 使用公共VB池的方式,必须设置vb_src为OT_VB_SRC_COMMON。

  • UserVB大小根据CHN输出图像计算,具体计算公式参考ot_buffer.h。

【举例】

无。

【相关主题】

ss_mpi_vi_chn_detach_vb_pool

【描述】

将VI PIPE的通道从某个视频缓存VB池中解绑定。

【语法】

td_s32 ss_mpi_vi_chn_detach_vb_pool(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn);

【参数】

参数名称

描述

输入/输出

vi_pipe

VI PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【需求】

  • 头文件:ss_mpi_vi.h、ot_common_vi.h

  • 库文件:libss_mpi.a

【解决方案差异】

无。

【注意】

PIPE必须已创建。

【举例】

无。

【相关主题】

ss_mpi_vi_query_chn_status

【描述】

查询VI通道的状态。

【语法】

td_s32 ss_mpi_vi_query_chn_status(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_vi_chn_status *chn_status);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

chn_status

VI通道状态。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h、ot_common_video.h

  • 库文件:libss_mpi.a

【注意】

PIPE必须已创建。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_chn_fd

【描述】

获取VI通道文件描述符。

【语法】

td_s32 ss_mpi_vi_get_chn_fd(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_CHN_NUM)

输入

【返回值】

返回值

描述

正数值

有效返回值。

非正数值

无效返回值。

【解决方案差异】

无。

【需求】

头文件:ss_mpi_vi.h

【注意】

无。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_stitch_grp_attr

【描述】

设置VI 的拼接组属性。

【语法】

td_s32 ss_mpi_vi_set_stitch_grp_attr(ot_vi_grp stitch_grp, const ot_vi_stitch_grp_attr *stitch_grp_attr);

【参数】

参数名称

描述

输入/输出

stitch_grp

拼接组号。

取值范围:[0, OT_VI_MAX_STITCH_GRP_NUM)。

输入

stitch_grp_attr

拼接组的属性结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 必须在PIPE创建之前设置VI拼接组属性。

  • 拼接组属性中的stitch_en表示拼接组的使能,不允许重复设置为TD_TRUE,如果已经为TD_TRUE,重新设置拼接组属性,必须先设置为TD_FALSE,再重新设置。

  • 拼接组属性的PIPE必须不重复。

  • 拼接组的PIPE必须是相同的工作模式,比如都是VI离线,VPSS离线模式。

  • 拼接的sensor时序必须保持同步,如果相差大于max_pts_gap,则会出现同步不上的现象。

  • 当设置为同步模式的时候,拼接的sensor时序必须一致(同时上报帧起始),否则效果可能不一致。

  • 当设置为同步模式的时候,拼接组的PIPE必须是相同的工作模式且必须是VI离线,VPSS离线,或者VI离线,VPSS在线。

  • 使用送帧+isp_runonce做多pipe拼接时,需要调用者自己保证多帧间的同步;使用pipe送帧的场景下不支持拼接sync模式,会导致通路异常。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_stitch_grp_attr

【描述】

获取VI 的拼接组属性。

【语法】

td_s32 ss_mpi_vi_get_stitch_grp_attr(ot_vi_grp stitch_grp, ot_vi_stitch_grp_attr *stitch_grp_attr);

【参数】

参数名称

描述

输入/输出

stitch_grp

拼接组号。

取值范围:[0, OT_VI_MAX_STITCH_GRP_NUM)。

输入

stitch_grp_attr

拼接组的属性结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ot_common_vi.h、ss_mpi_vi.h

【注意】

必须先设置拼接组的属性才能使用本接口。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_set_mod_param

【描述】

设置VI模块参数。

【语法】

td_s32 ss_mpi_vi_set_mod_param(const ot_vi_mod_param *mod_param);

【参数】

参数名称

描述

输入/输出

mod_param

VI模块参数结构体。

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • 必须在所有VI设备设置,PIPE创建之前设置VI模块参数。

  • VI控制是否丢帧,PIPE丢帧取决于PIPE是否有数据写出,如果有数据写出则丢帧策略有效,否则丢帧策略无效。

  • 当PIPE处于VI在线VPSS在线时,由于VI通道无帧数据输出,因此VI通道丢帧失效。

  • 暂不支持此接口。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_get_mod_param

【描述】

获取VI模块参数。

【语法】

td_s32 ss_mpi_vi_get_mod_param(ot_vi_mod_param *mod_param);

【参数】

参数名称

描述

输入/输出

mod_param

VI模块参数结构体。

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

暂不支持此接口。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_close_fd

【描述】

关闭VI文件描述符。

【语法】

td_s32 ss_mpi_vi_close_fd(td_void);

【参数】

参数名称

描述

输入/输出

td_void

-

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【解决方案差异】

无。

【需求】

头文件:ss_mpi_vi.h

【注意】

该接口不支持多线程调用。

【举例】

无。

【相关主题】

无。

ss_mpi_vi_chn_set_zoom_in_window

【描述】

设置vi chn 裁剪放大属性。

【语法】

td_s32 ss_mpi_vi_chn_set_zoom_in_window(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, const ot_zoom_attr *zoom_attr);

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

zoom_attr

vi chn 裁剪放大属性

输入

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • pipe必须已创建。

  • 若crop_mode为OT_COORD_RATIO(相对坐标模式):

    使用crop_rect的成员时应进行转换,计算公式为:

    x = 起始点坐标*原始图像宽度/1000,合法取值范围:[0, 999]。计算完成后将进行取整和对齐操作。公式同样适用于纵坐标计算,x为转换后的坐标。

    width=区域宽度*实际图像宽度/1000,区域宽度取值范围:[1, 1000]。计算完成后将进行取整和对齐操作。公式同样适用于区域高度计算,width为转换后的宽度。

  • 在相对模式进行裁剪时,裁剪区域的坐标取值范围为[0, 999],裁剪区域的宽高取值范围为[1, 1000]。

  • 如果裁剪放大区域超出图像范围,则自动裁剪至图像的有效范围区域。

  • 裁剪区域的起始点坐标和宽高需满足2像素对齐要求。

  • 无论是相对还是绝对裁剪放大,实际裁剪放大区域的宽高不能小于输入图像宽高的1/8,起始点必须位于图像范围内,不允许使用负坐标。

  • zoom_in_window不支持与gyro组合。

  • 当通道的宽高改变时,需要去重新设置zoom属性,否则可能导致效果异常。

【举例】

无。

【相关主题】

ss_mpi_vi_chn_get_zoom_in_window

ss_mpi_vi_chn_get_zoom_in_window

【描述】

获取vi chn 裁剪放大属性。

【语法】

td_s32 ss_mpi_vi_chn_get_zoom_in_window(ot_vi_pipe vi_pipe, ot_vi_chn vi_chn, ot_zoom_attr *zoom_attr)

【参数】

参数名称

描述

输入/输出

vi_pipe

PIPE号。

取值范围:[0, OT_VI_MAX_PIPE_NUM)

输入

vi_chn

VI通道号。

取值范围:[0, OT_VI_MAX_PHYS_CHN_NUM)

输入

zoom_attr

vi chn 裁剪放大属性

输出

【返回值】

返回值

描述

0

成功。

非0

失败,其值为错误码

【需求】

  • 头文件:ot_common_vi.h、ss_mpi_vi.h

  • 库文件:libss_mpi.a

【注意】

  • pipe必须已创建。

【举例】

无。

【相关主题】

ss_mpi_vi_chn_set_zoom_in_window

数据类型

视频输入相关数据类型定义如下:

  • OT_VI_MAX_SNS_CFG_NUM: 时序配置数据的最大个数。

  • OT_VI_MAX_SD_MUX_NUM: SD管脚复用的最大个数。

  • OT_VI_MAX_DEV_NUM:定义VI设备的最大个数。

  • OT_VI_MAX_PHYS_PIPE_NUM:定义VI 物理PIPE的最大个数。

  • OT_VI_MAX_VIRT_PIPE_NUM:定义VI 虚拟PIPE的最大个数。

  • OT_VI_MAX_PIPE_NUM:定义VI PIPE的最大个数。

  • OT_VI_MAX_STITCH_GRP_NUM:定义VI拼接组的最大个数。

  • OT_VI_MAX_WDR_FUSION_GRP_NUM:定义VI WDR融合组的最大个数。

  • OT_VI_MAX_WDR_FRAME_NUM: 定义VI WDR融合组合成帧的最大个数。

  • OT_VI_MAX_PHYS_CHN_NUM:定义VI物理通道的最大个数。

  • OT_VI_MAX_EXT_CHN_NUM:定义VI扩展通道的最大个数。

  • OT_VI_EXT_CHN_START:定义VI扩展通道的起始通道号。

  • OT_VI_MAX_EXTCHN_BIND_PER_CHN:定义VI单个通道可绑定的扩展通道最大个数。

  • OT_VI_MAX_CHN_NUM:定义VI物理通道和扩展通道的总个数。

  • OT_VI_DEV_MIN_WIDTH:VI设备捕获图像的最小宽度。

  • OT_VI_DEV_MIN_HEIGHT:VI设备捕获图像的最小高度。

  • OT_VI_DEV_MAX_WIDTH:VI设备捕获图像的最大宽度。

  • OT_VI_DEV_MAX_HEIGHT:VI设备捕获图像的最大高度。

  • OT_VI_PIPE_OFFLINE_MIN_WIDTH:VI PIPE离线处理图像的最小宽度。

  • OT_VI_PIPE_OFFLINE_MIN_HEIGHT:VI PIPE离线处理图像的最小高度。

  • OT_VI_PIPE_OFFLINE_MAX_WIDTH:离线模式下VI PIPE处理图像的最大宽度。

  • OT_VI_PIPE_OFFLINE_MAX_HEIGHT:VI PIPE离线处理图像的最大高度。

  • OT_VI_PIPE_ONLINE_MIN_WIDTH:在线模式下VI PIPE处理图像的最小宽度。

  • OT_VI_PIPE_ONLINE_MIN_HEIGHT:在线模式下VI PIPE处理图像的最小高度。

  • OT_VI_PIPE_ONLINE_MAX_WIDTH:在线模式下VI PIPE处理图像的最大宽度。

  • OT_VI_PIPE_ONLINE_MAX_HEIGHT:在线模式下VI PIPE处理图像的最大高度。

  • OT_VI_PHYS_CHN_OFFLINE_MIN_WIDTH:VI物理通道离线支持的最小宽度。

  • OT_VI_PHYS_CHN_OFFLINE_MIN_HEIGHT:VI物理通道离线支持的最小高度。

  • OT_VI_PHYS_CHN_OFFLINE_MAX_WIDTH:VI物理通道离线支持的最大宽度。

  • OT_VI_PHYS_CHN_OFFLINE_MAX_HEIGHT:VI物理通道离线支持的最大高度。

  • OT_VI_PHYS_CHN_ONLINE_MIN_WIDTH:VI物理通道在线支持的最小宽度。

  • OT_VI_PHYS_CHN_ONLINE_MIN_HEIGHT:VI物理通道在线支持的最小高度。

  • OT_VI_PHYS_CHN_ONLINE_MAX_WIDTH:VI物理通道在线支持的最大宽度。

  • OT_VI_PHYS_CHN_ONLINE_MAX_HEIGHT:VI物理通道在线支持的最大高度。

  • OT_VI_EXT_CHN_MIN_WIDTH:VI扩展通道支持的最小宽度。

  • OT_VI_EXT_CHN_MIN_HEIGHT:VI扩展通道支持的最小高度。

  • OT_VI_EXT_CHN_MAX_WIDTH:VI扩展通道支持的最大宽度。

  • OT_VI_EXT_CHN_MAX_HEIGHT:VI扩展通道支持的最大高度。

  • OT_VI_EXT_CHN_MAX_ZOOMIN:VI扩展通道支持的最大放大倍数。

  • OT_VI_EXT_CHN_MAX_ZOOMOUT:VI扩展通道支持的最大缩小倍数。

  • OT_VI_COMPRESS_PARAM_SIZE:VI RAW数据压缩参数的大小。

  • OT_VI_COMPRESS_PARAM_SIZE:VI RAW数据压缩参数的大小。

  • OT_VI_MIN_BNR_BUF_NUM:VI bayernr buffer个数的最小值。

  • OT_VI_MAX_BNR_BUF_NUM:VI bayernr buffer个数的最大值。

  • OT_VI_MAX_AD_CHN_NUM:VI设备属性中ad_chn_id的个数。

  • OT_VI_COMPONENT_MASK_NUM:VI设备属性中Component mask 的个数。

  • OT_VI_INVALID_FRAME_RATE:VI帧率控制的宏,当原始帧率和目标帧率都为该宏时,不做帧率控制。

  • OT_VI_CORRECTION_COEF_NUM:通道视场角矫正时PMF系数大小。

  • ot_vi_intf_mode:定义视频设备的接口模式。

  • ot_vi_work_mode:定义视频设备的复合工作模式。

  • ot_vi_scan_mode:定义视频设备接收的是隔行或逐行输入图像。

  • ot_vi_data_seq:定义视频设备接收的YUV数据的数据排列顺序。

  • ot_vi_vsync:定义视频设备输入数据的垂直同步信号类型。

  • ot_vi_vsync_neg:定义视频设备输入数据垂直同步信号的极性。

  • ot_vi_hsync:定义视频设备输入数据的水平同步信号类型。

  • ot_vi_hsync_neg:定义视频设备输入数据水平同步信号的极性。

  • ot_vi_vsync_valid:定义视频设备输入数据的垂直有效同步信号类型。

  • ot_vi_vsync_valid_neg:定义视频设备输入数据垂直有效同步信号的极性。

  • ot_vi_timing_blank:定义视频设备输入时序的消隐信息。

  • ot_vi_sync_cfg:定义视频设备接收BT.601、DC、BT.656和BT.1120时序的同步信息。

  • ot_vi_data_type:VI输入数据类型枚举。

  • ot_vi_dev_attr:定义视频输入设备的属性。

  • ot_vi_rephase_mode:定义bayer域相位调整类型。

  • ot_vi_rephase_attr:定义bayer域相位调整属性。

  • ot_vi_scale_attr:定义bayer域缩放属性。

  • ot_vi_bas_attr:定义bayer域属性。

  • ot_vi_thermo_work_mode: 定义热成像探测器的工作类型。

  • ot_vi_sd_mux: 定义热成像输出的管脚乱序。

  • ot_vi_thermo_sns_attr: 定义热成像探测器的配置属性。

  • ot_vi_dev_timing_attr:定义VI DEV自产生时序属性。

  • ot_vi_dev_data_attr:定义VI DEV自产生数据属性。

  • ot_vi_bind_pipe:定义VI DEV与PIPE的绑定关系。

  • ot_vi_wdr_fusion_grp_attr:定义wdr 融合组的属性。

  • ot_vi_pipe_bypass_mode:定义VI PIPE的Bypass模式。

  • ot_vi_bit_align_mode:定义VI PIPE写出16bit Raw时是高/低位对齐。

  • ot_vi_pipe_attr:定义VI PIPE属性。

  • ot_vi_frame_dump_attr:定义VI PIPE dump frame属性。

  • ot_vi_private_data_mode:定义VI PIPE dump 私有数据的类型。

  • ot_vi_private_data_dump_attr:定义VI PIPE dump私有数据的属性。

  • ot_vi_private_data_info:定义VI PIPE 私有数据相关的信息。

  • ot_vi_pipe_param:定义VI PIPE参数。

  • ot_vi_pipe_frame_source:定义VI PIPE输入帧的来源。

  • ot_vi_pipe_status:定义VI PIPE的运行状态。

  • ot_vi_compress_param:定义压缩参数的大小。

  • ot_vi_chn_attr:定义VI通道的属性。

  • ot_vi_ext_chn_attr:定义VI扩展通道的属性。

  • ot_vi_crop_info:定义VI通道的crop信息。

  • ot_vi_chn_status:定义VI通道的运行状态。

  • ot_vi_stitch_cfg_mode:定义VI拼接的配置模式。

  • ot_vi_stitch_grp_attr:定义VI拼接组的属性。

  • ot_vi_mod_param:定义VI的模块参数。

  • OT_DIS_MAX_IMAGE_WIDTH:定义DIS的最大图像宽度。

  • OT_DIS_MAX_IMAGE_HEIGHT:定义DIS的最大图像高度。

  • OT_DIS_MIN_IMAGE_WIDTH:定义DIS的最小图像宽度。

  • OT_DIS_MIN_IMAGE_HEIGHT:定义DIS的最小图像高度。

  • ot_dis_mode:定义DIS防抖算法模式。

  • ot_dis_motion_level:定义镜头的运动级别。

  • ot_dis_pdt_type:定义使用DIS的产品形态。

  • ot_dis_cfg:定义DIS的配置信息。

  • ot_dis_attr:定义DIS属性。

  • ot_dis_param:定义DIS可选参数。

  • ot_dis_wdr_attr:定义DIS WDR属性。

  • ot_vi_fov_correction_attr:定义视场角矫正属性。

OT_VI_MAX_SNS_CFG_NUM

【说明】

时序配置数据的最大个数。

【定义】

#define OT_VI_MAX_SNS_CFG_NUM     64U

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_MAX_SD_MUX_NUM

【说明】

SD管脚复用的最大个数。

【定义】

#define  OT_VI_MAX_SD_MUX_NUM  4U

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_MAX_DEV_NUM

【说明】

定义VI设备的最大个数。

【定义】

不同项目对应具体信息请参见表1。

OT_VI_MAX_PHYS_PIPE_NUM

【说明】

定义VI 物理PIPE的最大个数。

【定义】

不同项目对应具体信息请参见表1。

OT_VI_MAX_VIRT_PIPE_NUM

【说明】

定义VI虚拟 PIPE的最大个数。

【定义】

不同项目对应具体信息请参见表1。

OT_VI_MAX_PIPE_NUM

【说明】

定义VI PIPE的最大个数。

【定义】

#define OT_VI_MAX_PIPE_NUM  (OT_VI_MAX_PHYS_PIPE_NUM + OT_VI_MAX_VIRT_PIPE_NUM)

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_MAX_STITCH_GRP_NUM

【说明】

定义VI 拼接组的最大个数。

【定义】

#define OT_VI_MAX_STITCH_GRP_NUM   4

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_MAX_WDR_FUSION_GRP_NUM

【说明】

定义VI WDR融合组的最大个数。

【定义】

#define OT_VI_MAX_WDR_FUSION_GRP_NUM   OT_VI_MAX_PIPE_NUM

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_MAX_WDR_FRAME_NUM

【说明】

定义VI WDR融合组合成帧的最大个数。

【定义】

#define OT_VI_MAX_WDR_FRAME_NUM           3

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_MAX_PHYS_CHN_NUM

【说明】

定义VI物理通道的最大个数。

【定义】

不同项目对应具体信息请参见表1。

OT_VI_MAX_EXT_CHN_NUM

【说明】

定义VI扩展通道的最大个数。

【定义】

不同项目对应具体信息请参见表1。

OT_VI_EXT_CHN_START

【说明】

定义VI扩展通道的起始通道号。

【定义】

#define OT_VI_EXT_CHN_START            OT_VI_MAX_PHYS_CHN_NUM

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_MAX_EXTCHN_BIND_PER_CHN

【说明】

定义VI单个通道可绑定的扩展通道最大个数。

【定义】

#define OT_VI_MAX_EXTCHN_BIND_PER_CHN  8

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_MAX_CHN_NUM

【说明】

定义VI物理通道和扩展通道的总个数。

【定义】

#define OT_VI_MAX_CHN_NUM  (OT_VI_MAX_PHYS_CHN_NUM + OT_VI_MAX_EXT_CHN_NUM)

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_DEV_MIN_WIDTH

【说明】

VI设备捕获图像的最小宽度。

【定义】

#define OT_VI_DEV_MIN_WIDTH       120

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_DEV_MIN_HEIGHT

【说明】

VI设备捕获图像的最小高度。

【定义】

#define OT_VI_DEV_MIN_HEIGHT      88

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_DEV_MAX_WIDTH

【说明】

VI设备捕获图像的最大宽度。

【定义】

SS928V100:

#define OT_VI_DEV_MAX_WIDTH       8192

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_vi_set_dev_attr

OT_VI_DEV_MAX_HEIGHT

【说明】

VI设备捕获图像的最大高度。

【定义】

SS928V100:

#define OT_VI_DEV_MAX_HEIGHT       8192

【注意事项】

【相关数据类型及接口】

ss_mpi_vi_set_dev_attr

OT_VI_PIPE_OFFLINE_MIN_WIDTH

【说明】

VI PIPE离线处理图像的最小宽度。

【定义】

#define OT_VI_PIPE_OFFLINE_MIN_WIDTH       120

【注意事项】

【相关数据类型及接口】

无。

OT_VI_PIPE_OFFLINE_MIN_HEIGHT

【说明】

VI PIPE离线处理图像的最小高度。

【定义】

#define OT_VI_PIPE_OFFLINE_MIN_HEIGHT      88

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_PIPE_OFFLINE_MAX_WIDTH

【说明】

离线模式下VI PIPE处理图像的最大宽度。

【定义】

#define OT_VI_PIPE_OFFLINE_MAX_WIDTH       8192

【注意事项】

【相关数据类型及接口】

OT_VI_PIPE_OFFLINE_MAX_HEIGHT

【说明】

VI PIPE离线处理图像的最大高度。

【定义】

#define OT_VI_PIPE_OFFLINE_MAX_HEIGHT       8192

【注意事项】

无。

【相关数据类型及接口】

OT_VI_PIPE_ONLINE_MIN_WIDTH

【说明】

在线模式下,VI PIPE处理图像的最小宽度。

【定义】

#define OT_VI_PIPE_ONLINE_MIN_WIDTH       120

【注意事项】

【相关数据类型及接口】

OT_VI_PIPE_ONLINE_MIN_HEIGHT

【说明】

在线模式下,VI PIPE处理图像的最小高度。

【定义】

#define OT_VI_PIPE_ONLINE_MIN_HEIGHT       88

【注意事项】

【相关数据类型及接口】

OT_VI_PIPE_ONLINE_MAX_WIDTH

【说明】

在线模式下,VI PIPE处理图像的最大宽度。

【定义】

SS928V100:

#define OT_VI_PIPE_ONLINE_MAX_WIDTH       4096

【注意事项】

无。

【相关数据类型及接口】

OT_VI_PIPE_ONLINE_MAX_HEIGHT

【说明】

在线模式下,VI PIPE处理图像的最大高度。

【定义】

SS928V100:

#define OT_VI_PIPE_ONLINE_MAX_HEIGHT       8192

【注意事项】

无。

【相关数据类型及接口】

OT_VI_PHYS_CHN_OFFLINE_MIN_WIDTH

【说明】

VI物理通道离线支持的最小宽度。

【定义】

#define OT_VI_PHYS_CHN_OFFLINE_MIN_WIDTH       120

【注意事项】

【相关数据类型及接口】

OT_VI_PHYS_CHN_OFFLINE_MIN_HEIGHT

【说明】

VI物理通道离线支持的最小高度。

【定义】

#define OT_VI_PHYS_CHN_OFFLINE_MIN_HEIGHT       88

【注意事项】

【相关数据类型及接口】

OT_VI_PHYS_CHN_OFFLINE_MAX_WIDTH

【说明】

VI物理通道离线支持的最大宽度。

【定义】

SS928V100:

#define OT_VI_PHYS_CHN_OFFLINE_MAX_WIDTH       8192

【注意事项】

【相关数据类型及接口】

OT_VI_PHYS_CHN_OFFLINE_MAX_HEIGHT

【说明】

VI物理通道离线支持的最大高度。

【定义】

#define OT_VI_PHYS_CHN_OFFLINE_MAX_HEIGHT       8192

【注意事项】

【相关数据类型及接口】

OT_VI_PHYS_CHN_ONLINE_MIN_WIDTH

【说明】

VI物理通道在线支持的最小宽度。

【定义】

#define OT_VI_PHYS_CHN_ONLINE_MIN_WIDTH       120

【注意事项】

【相关数据类型及接口】

OT_VI_PHYS_CHN_ONLINE_MIN_HEIGHT

【说明】

VI物理通道在线支持的最小高度。

【定义】

#define OT_VI_PHYS_CHN_ONLINE_MIN_HEIGHT       88

【注意事项】

【相关数据类型及接口】

OT_VI_PHYS_CHN_ONLINE_MAX_WIDTH

【说明】

VI物理通道在线支持的最大宽度。

【定义】

#define OT_VI_PHYS_CHN_ONLINE MAX_WIDTH       4096

【注意事项】

【相关数据类型及接口】

OT_VI_PHYS_CHN_ONLINE_MAX_HEIGHT

【说明】

VI物理通道在线支持的最大高度。

【定义】

#define OT_VI_PHYS_CHN_ONLINE_MAX_HEIGHT       8192

【注意事项】

【相关数据类型及接口】

OT_VI_EXT_CHN_MIN_WIDTH

【说明】

VI扩展通道支持的最小宽度。

【定义】

#define OT_VI_EXT_CHN_MIN_WIDTH    32

【注意事项】

【相关数据类型及接口】

OT_VI_EXT_CHN_MIN_HEIGHT

【说明】

VI扩展通道支持的最小高度。

【定义】

#define OT_VI_EXT_CHN_MIN_HEIGHT     32

【注意事项】

【相关数据类型及接口】

OT_VI_EXT_CHN_MAX_WIDTH

【说明】

VI扩展通道支持的最大宽度。

【定义】

#define OT_VI_EXT_CHN_MAX_WIDTH    8192

【注意事项】

【相关数据类型及接口】

OT_VI_EXT_CHN_MAX_HEIGHT

【说明】

VI扩展通道支持的最大高度。

【定义】

#define OT_VI_EXT_CHN_MAX_HEIGHT     8192

【注意事项】

【相关数据类型及接口】

OT_VI_EXT_CHN_MAX_ZOOMIN

【说明】

VI扩展通道支持的最大放大倍数。

【定义】

#define OT_VI_EXT_CHN_MAX_ZOOMIN         16

【注意事项】

无。

【相关数据类型及接口】

OT_VI_EXT_CHN_MAX_ZOOMOUT

OT_VI_EXT_CHN_MAX_ZOOMOUT

【说明】

VI扩展通道支持的最大缩小倍数。

【定义】

#define OT_VI_EXT_CHN_MAX_ZOOMOUT        30

【注意事项】

无。

【相关数据类型及接口】

OT_VI_EXT_CHN_MAX_ZOOMIN

OT_VI_COMPRESS_PARAM_SIZE

【说明】

VI RAW数据压缩参数的大小。

【定义】

#define OT_VI_COMPRESS_PARAM_SIZE          152

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_MIN_BNR_BUF_NUM

【说明】

VI bayernr buffer个数的最小值。

【定义】

#define OT_VI_MIN_BNR_BUF_NUM             8

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_MAX_BNR_BUF_NUM

【说明】

VI bayernr buffer个数的最大值。

【定义】

#define OT_VI_MAX_BNR_BUF_NUM             128

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_MAX_AD_CHN_NUM

【说明】

VI设备属性中ad_chn_id的个数。

【定义】

#define OT_VI_MAX_AD_CHN_NUM            (4UL)

【注意事项】

【相关数据类型及接口】

OT_VI_COMPONENT_MASK_NUM

【说明】

VI设备属性中Component mask 的个数。

【定义】

#define OT_VI_COMPONENT_MASK_NUM             (2UL)

【注意事项】

【相关数据类型及接口】

无。

OT_VI_INVALID_FRAME_RATE

【说明】

VI帧率控制的宏,当原始帧率和目标帧率都为该宏时,不做帧率控制。

【定义】

#define OT_VI_INVALID_FRAME_RATE  (-1)

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VI_CORRECTION_COEF_NUM

【说明】

通道视场角矫正时PMF系数大小。

【定义】

#define OT_VI_CORRECTION_COEF_NUM   9

【注意事项】

无。

【相关数据类型及接口】

ot_vi_fov_correction_attr

ot_vi_intf_mode

【说明】

定义视频设备的接口模式。

【定义】

typedef enum {
    OT_VI_INTF_MODE_BT656 = 0,
    OT_VI_INTF_MODE_BT601, 
    OT_VI_INTF_MODE_DC, 
    OT_VI_INTF_MODE_BT1120, 
    OT_VI_INTF_MODE_MIPI,
    OT_VI_INTF_MODE_MIPI_YUV420_NORM,
    OT_VI_INTF_MODE_MIPI_YUV420_LEGACY,
    OT_VI_INTF_MODE_MIPI_YUV422,
    OT_VI_INTF_MODE_THERMO,
    OT_VI_INTF_MODE_BUTT
} ot_vi_intf_mode;

【成员】

成员名称

描述

OT_VI_INTF_MODE_BT656

输入数据的协议符合标准BT.656协议,端口数据输入模式为亮度色度分离模式,分量模式为单分量。

OT_VI_INTF_MODE_BT601

输入数据的协议符合标准BT.601协议,端口数据输入模式为亮度色度复合模式,分量模式为单分量。

OT_VI_INTF_MODE_DC

输入数据的协议为Digital camera协议,端口数据输入模式为亮度色度复合模式,分量模式为单分量。

OT_VI_INTF_MODE_BT1120

输入数据的协议符合标准BT.1120协议(BT656+双分量),端口数据输入模式为亮度色度分离模式,分量模式为双分量。

OT_VI_INTF_MODE_MIPI

输入数据符合MIPI/LVDS/SUBLVDS/HISPI协议,用于传输RAW数据。

OT_VI_INTF_MODE_MIPI_YUV420_NORM

输入数据符合MIPI协议,用于传输YUV420 normal模式的数据。

OT_VI_INTF_MODE_MIPI_YUV420_LEGACY

输入数据符合MIPI协议,用于传输YUV420 legacy模式的数据。

OT_VI_INTF_MODE_MIPI_YUV422

输入数据符合MIPI协议,用于传输YUV422数据。

OT_VI_INTF_MODE_THERMO

热成像工作模式为OT_VI_THERMO_WORK_MODE_T0或者OT_VI_THERMO_WORK_MODE_T2时,用于传输热成像探测器的数据。

【解决方案差异】

【注意事项】

【相关数据类型及接口】

ot_vi_work_mode

【说明】

定义视频设备的复合工作模式。

【定义】

typedef enum {
    OT_VI_WORK_MODE_MULTIPLEX_1 = 0,
    OT_VI_WORK_MODE_MULTIPLEX_2,
    OT_VI_WORK_MODE_MULTIPLEX_4,
    OT_VI_WORK_MODE_BUTT
} ot_vi_work_mode;

【成员】

成员名称

描述

OT_VI_WORK_MODE_MULTIPLEX_1

1路复合工作模式。

OT_VI_WORK_MODE_MULTIPLEX_2

2路复合工作模式,输入数据的协议必须为标准BT.656协议。

OT_VI_WORK_MODE_MULTIPLEX_4

4路复合工作模式,输入数据的协议必须为标准BT.656协议。

【注意事项】

当该项设为2路或4路复合工作模式时,设备输入的协议必须是BT.656协议。1路复合工作模式没有限制。

【相关数据类型及接口】

ot_vi_scan_mode

【说明】

定义视频设备接收的是隔行或逐行输入图像。

【定义】

typedef enum {
    OT_VI_SCAN_PROGRESSIVE = 0,
    OT_VI_SCAN_INTERLACED,
    OT_VI_SCAN_BUTT
} ot_vi_scan_mode;

【成员】

成员名称

描述

OT_VI_SCAN_PROGRESSIVE

VI输入为逐行图像。

OT_VI_SCAN_INTERLACED

VI输入为隔行图像。

【注意事项】

仅支持OT_VI_SCAN_PROGRESSIVE。

【相关数据类型及接口】

ot_vi_data_seq

【说明】

定义视频设备接收的YUV数据的数据排列顺序。

【定义】

typedef enum {
    OT_VI_DATA_SEQ_VUVU = 0,
    OT_VI_DATA_SEQ_UVUV,     
    OT_VI_DATA_SEQ_UYVY,
    OT_VI_DATA_SEQ_VYUY,
    OT_VI_DATA_SEQ_YUYV,
    OT_VI_DATA_SEQ_YVYU,
    OT_VI_DATA_SEQ_BUTT
} ot_vi_data_seq;

【成员】

成员名称

描述

OT_VI_DATA_SEQ_VUVU

YUV数据通过分离模式输入时,C分量的输入排列顺序为VUVU。

OT_VI_DATA_SEQ_UVUV

YUV数据通过分离模式输入时,C分量的输入排列顺序为UVUV。

OT_VI_DATA_SEQ_UYVY

YUV数据通过复合模式输入时,顺序为UYVY

OT_VI_DATA_SEQ_VYUY

YUV数据通过复合模式输入时,顺序为VYUY

OT_VI_DATA_SEQ_YUYV

YUV数据通过复合模式输入时,顺序为YUYV

OT_VI_DATA_SEQ_YVYU

YUV数据通过复合模式输入时,顺序为YVYU

【注意事项】

无。

【相关数据类型及接口】

ot_vi_vsync

【说明】

定义视频设备输入数据的垂直同步信号类型。

【定义】

typedef enum {
    OT_VI_VSYNC_FIELD = 0,
    OT_VI_VSYNC_PULSE,
    OT_VI_VSYNC_BUTT
} ot_vi_vsync;

【成员】

成员名称

描述

OT_VI_VSYNC_FIELD

垂直同步翻转模式,即翻转一次表示一场。BT.601模式下表示场号,DC模式下表示行有效信号。

OT_VI_VSYNC_PULSE

垂直同步脉冲模式,即一个脉冲到来表示新的一帧或一场。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_vsync_neg

【说明】

定义视频设备输入数据垂直同步信号的极性。

【定义】

typedef enum {
    OT_VI_VSYNC_NEG_HIGH = 0,
    OT_VI_VSYNC_NEG_LOW,
    OT_VI_VSYNC_NEG_BUTT
} ot_vi_vsync_neg;

【成员】

成员名称

描述

OT_VI_VSYNC_NEG_HIGH

若ot_vi_vsync = OT_VI_VSYNC_FIELD,则表示偶数场的vsync信号为高电平;

若ot_vi_vsync = OT_VI_VSYNC_PULSE,则表示vsync同步脉冲为正脉冲。

OT_VI_VSYNC_NEG_LOW

若ot_vi_vsync = OT_VI_VSYNC_FIELD,则表示偶数场的vsync信号为低电平;

若ot_vi_vsync = OT_VI_VSYNC_PULSE,则表示vsync同步脉冲为负脉冲。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_hsync

【说明】

定义视频设备输入数据的水平同步信号类型。

【定义】

typedef enum {
    OT_VI_HSYNC_VALID_SIG = 0,
    OT_VI_HSYNC_PULSE,
    OT_VI_HSYNC_BUTT
} ot_vi_hsync;

【成员】

成员名称

描述

OT_VI_HSYNC_VALID_SIG

水平同步数据有效信号。

OT_VI_HSYNC_PULSE

水平同步脉冲信号。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_hsync_neg

【说明】

定义视频设备输入数据水平同步信号的极性。

【定义】

typedef enum {
    OT_VI_HSYNC_NEG_HIGH = 0,
    OT_VI_HSYNC_NEG_LOW,
    OT_VI_HSYNC_NEG_BUTT
} ot_vi_hsync_neg;

【成员】

成员名称

描述

OT_VI_HSYNC_NEG_HIGH

若ot_vi_hsync = OT_VI_SYNC_VALID_SIG则高电平表示有效数据;

若ot_vi_hsync = OT_VI_SYNC_PULSE,则正脉冲表示同步脉冲。

OT_VI_HSYNC_NEG_LOW

若ot_vi_hsync = OT_VI_SYNC_VALID_SIG,则低电平表示有效数据;

若ot_vi_hsync = OT_VI_SYNC_PULSE,则负脉冲表示同步脉冲。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_vsync_valid

【说明】

定义视频设备输入数据的垂直有效同步信号类型。

【定义】

typedef enum {
    OT_VI_VSYNC_NORM_PULSE = 0,
    OT_VI_VSYNC_VALID_SIG,
    OT_VI_VSYNC_VALID_BUTT
} ot_vi_vsync_valid;

【成员】

成员名称

描述

OT_VI_VSYNC_NORM_PULSE

表示垂直有效同步标识。

OT_VI_VSYNC_VALID_SIG

表示垂直同步时序行有效信号。

【注意事项】

DC/BT.656/BT.1120模式下需要配置该项。

【相关数据类型及接口】

ot_vi_vsync_valid_neg

【说明】

定义视频设备输入数据垂直有效同步信号的极性。

【定义】

typedef enum {
    OT_VI_VSYNC_VALID_NEG_HIGH = 0,
    OT_VI_VSYNC_VALID_NEG_LOW,
    OT_VI_VSYNC_VALID_NEG_BUTT
} ot_vi_vsync_valid_neg;

【成员】

成员名称

描述

OT_VI_VSYNC_VALID_NEG_HIGH

若ot_vi_vsync_valid = OT_VI_VSYNC_VALID_SIG,则表示高电平为有效信号。

OT_VI_VSYNC_VALID_NEG_LOW

若ot_vi_vsync_valid = OT_VI_VSYNC_VALID_SIG,则表示低电平为有效信号。

【注意事项】

只有在ot_vi_vsync_valid = OT_VI_VSYNC_VALID_SIG时,该项才有效。

【相关数据类型及接口】

ot_vi_timing_blank

【说明】

定义视频设备输入时序的消隐信息。

【定义】

typedef struct {
    td_u32 hsync_hfb;
    td_u32 hsync_act;
    td_u32 hsync_hbb;
    td_u32 vsync_vfb;
    td_u32 vsync_vact;
    td_u32 vsync_vbb;
    td_u32 vsync_vbfb;
    td_u32 vsync_vbact;
    td_u32 vsync_vbbb;
} ot_vi_timing_blank;

【成员】

成员名称

描述

hsync_hfb

水平前消隐区宽度。

hsync_act

水平有效宽度。

hsync_hbb

水平后消隐区宽度

vsync_vfb

帧图像或隔行输入时奇场图像的垂直前消隐区高度。

vsync_vact

帧图像或隔行输入时奇场垂直有效高度。

vsync_vbb

帧图像或隔行输入时奇场垂直后消隐区高度。

vsync_vbfb

隔行输入时偶场垂直前消隐区高度(帧输入时无效)。

vsync_vbact

隔行输入时偶场垂直有效高度(帧输入时无效)。

vsync_vbbb

隔行输入时偶场垂直后消隐区高度(帧输入时无效)。

【注意事项】

该结构体只有在BT.601时生效,其他时序无效。

【相关数据类型及接口】

ot_vi_sync_cfg

ot_vi_sync_cfg

【说明】

定义视频设备接收BT.601、DC、BT.656和BT.1120时序的同步信息。

【定义】

typedef struct {
    ot_vi_vsync           vsync;
    ot_vi_vsync_neg       vsync_neg;
    ot_vi_hsync           hsync;
    ot_vi_hsync_neg       hsync_neg;
    ot_vi_vsync_valid     vsync_valid;
    ot_vi_vsync_valid_neg vsync_valid_neg;
    ot_vi_timing_blank    timing_blank;
} ot_vi_sync_cfg;

【成员】

成员名称

描述

vsync

垂直同步信号类型。

vsync_neg

垂直同步信号的极性。

hsync

水平同步信号类型。

hsync_neg

水平同步信号的极性。

vsync_valid

垂直有效同步信号类型。

vsync_valid_neg

垂直有效同步信号的极性。

timing_blank

输入时序的消隐信息。

【注意事项】

  • 此部分同步信息详细配置可参考《MPP 媒体处理软件V5.0 FAQ》2.2小节“VI YUV时序配置”。

  • BT.601模式下,垂直同步信号只需配置vsync和vsync_neg即可,它们分别表示管脚OT_VI_P_VSYNC_FIELD的垂直同步信号类型和垂直同步信号的极性,两者决定了采用何种垂直同步时序。

    • vsync配置为OT_VI_VSYNC_FIELD,BT.601模式下表示场号。此时,如果vsync_neg配置为OT_VI_VSYNC_NEG_HIGH,则高电平表示偶场,低电平表示奇场;如果vsync_neg配置为OT_VI_VSYNC_NEG_LOW,则低电平表示偶场,高电平表示奇场。

    • vsync配置为OT_VI_VSYNC_PULSE,表示垂直同步脉冲,即一个脉冲到来表示新的一场或一帧。此时,如果vsync_neg配置为OT_VI_VSYNC_NEG_HIGH,则正脉冲表示垂直同步脉冲;如果vsync_neg配置为OT_VI_VSYNC_NEG_LOW,则负脉冲表示垂直同步脉冲。

  • DC/BT.656/BT.1120模式下,垂直同步信号需要配置vsync、vsync_valid和 vsync_valid_neg三项,它们分别表示管脚OT_VI_P_VSYNC_FIELD的垂直同步信号类型、垂直同步信号标识和垂直有效信号极性。vsync_valid_neg只有在vsync_valid配为OT_VI_VSYNC_VALID_SIG时有效。

    • vsync配置为OT_VI_VSYNC_PULSE,表示垂直时序脉冲方式。如果在垂直消隐区内hsync信号仍有效,则vsync_valid需配置为OT_VI_VSYNC_VALID_SIG选择垂直有效标识,同时vsync_valid_neg需要配置为OT_VI_VSYNC_VALID_NEG_HIGH(或OT_VI_VSYNC_VALID_NEG_LOW),以表示高(低)电平有效,其他情况不需关注此属性。

    • 如果输入时序为垂直时序行有效方式,只需将vsync配置为OT_VI_VSYNC_FIELD即可。

    • 标准BT.656、BT.1120同步信息配置可参考《MPP 媒体处理软件V5.0 FAQ》2.2小节“VI YUV时序配置”。

  • hsync和 hsync_neg分别表示管脚VI_P_HSYNC_VD的水平同步信号类型和水平同步信号的极性,两者决定了采用何种水平同步时序。

    • hsync配置为OT_VI_HSYNC_VALID_SIG,表示数据有效信号。此时,如果hsync_neg配置为OT_VI_HSYNC_NEG_HIGH,则高电平表示数据有效;如果hsync_neg配置为OT_VI_HSYNC_NEG_LOW,则低电平表示数据有效。

    • hsync配置为OT_VI_HSYNC_PULSE,表示水平同步脉冲信号,即一个脉冲到来表示新一行的开始。此时,如果hsync_neg配置为OT_VI_HSYNC_NEG_HIGH,则正脉冲表示水平同步脉冲;如果hsync_neg配置为OT_VI_HSYNC_NEG_LOW,则负脉冲表示水平同步脉冲。

对于消隐信息,水平或垂直的有效数据方式不需要配消隐区。

SSxx支持的具体时序介绍请参见芯片手册。

【相关数据类型及接口】

ot_vi_data_type

【说明】

VI输入数据类型枚举。

【定义】

typedef enum {
    OT_VI_DATA_TYPE_RAW = 0,
    OT_VI_DATA_TYPE_YUV,
    OT_VI_DATA_TYPE_BUTT
} ot_vi_data_type;

【成员】

成员名称

描述

OT_VI_DATA_TYPE_RAW

输入数据类型为RAW,VI前端一般接的是sensor。

OT_VI_DATA_TYPE_YUV

输入数据类型为YUV,VI前端一般接的是AD。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_dev_attr

【说明】

定义视频输入设备的属性。

【定义】

typedef struct {
    ot_vi_intf_mode      intf_mode;
    ot_vi_work_mode    work_mode;
    td_u32               component_mask[OT_VI_COMPONENT_MASK_NUM];    
    ot_vi_scan_mode      scan_mode;
    td_s32               ad_chn_id[OT_VI_MAX_AD_CHN_NUM];
    ot_vi_data_seq       data_seq;
    ot_vi_sync_cfg      sync_cfg;
    ot_vi_data_type      data_type;
    td_bool              data_reverse;
    ot_size              in_size;
    ot_data_rate         data_rate;
} ot_vi_dev_attr;

【成员】

成员名称

描述

intf_mode

接口模式

work_mode

1、2、4路复合工作模式,必须设置为OT_VI_WORK_MODE_MULTIPLEX_1

component_mask

分量掩码配置。当intf_mode = OT_VI_INTF_MODE_BT1120时,需要配置Y(对应该变量数组的0下标)和C(对应该变量数组的1下标)的分量掩码,其他模式时配置单分量掩码(对应该变量数组的0下标),另一个分量(对应该变量数组的1下标)配成0x0。

scan_mode

输入扫描模式 (逐行、隔行)。

ad_chn_id

取值范围:[-1, 3],推荐统一设置为默认值-1,无效参数,不做参数检查。

data_seq

输入数据顺序 (仅支持yuv格式)

sync_cfg

同步时序配置。

data_type

输入数据类型,Sensor输入一般为Raw,AD输入一般为YUV。

data_reverse

因为走线约束等硬件原因,有可能出现AD/Sensor的数据线与VI数据线连接数据高低位反接比如,AD_DATA0VIU_DATA7连接,AD_DATA7VIU_DATA0连接以此类推。当AD/Sensor管脚与VI管脚正向连接时,取data_reverse = TD_FALSE;当反向连接时,取data_reverse = TD_TRUE。

in_size

VI设备可设置要捕获图像的高宽。

捕获图像的最小宽高与最大宽高:

宽度:[OT_VI_DEV_MIN_WIDTH, OT_VI_DEV_MAX_WIDTH]

高度:[OT_VI_DEV_MIN_HEIGHT, OT_VI_DEV_MAX_HEIGHT]

data_rate

设备的速率。

参数详情请参考“系统控制”章节。

【解决方案差异】

【注意事项】

  • in_size中width必须等于实际输入图像的宽度,height必须等于实际输入图像的高度,否则会导致没有图像输出。

  • 只有dev0支持OT_DATA_RATE_X2。data_rate的值需与mipi_data_rate_t(详情请参考MIPI_RX章节)保持一致。

  • OT_DATA_RATE_X2通路配置:MIPI0配置为MIPI_DATA_RATE_X2,DEV0配置OT_DATA_RATE_X2,DEV0绑定PIPE0,其他通路若需要一拍二像素写出,需要bypass isp;VI在线且非WDR模式时,不支持一拍二像素通路,会导致通道采集失败。

  • 当接口模式为OT_VI_INTF_MODE_MIPI_YUV420_NORM,OT_VI_INTF_MODE_MIPI_YUV420_LEGACY,OT_VI_INTF_MODE_MIPI_YUV422时data_reverse必须为TD_FALSE,且掩码的设置必须为component_mask[0] = 0xFF000000,component_mask[1] = 0x00FF0000,即高8bit输入Y数据,低8bit输入C数据,否则会导致图像异常或无图像等现像。

【相关数据类型及接口】

ot_vi_rephase_mode

ot_vi_rephase_mode

【说明】

定义bayer域相位调整类型。

【定义】

typedef enum {
    OT_VI_REPHASE_MODE_NONE = 0,
    OT_VI_REPHASE_MODE_SKIP_1_2,
    OT_VI_REPHASE_MODE_SKIP_1_3,
    OT_VI_REPHASE_MODE_BINNING_1_2,
    OT_VI_REPHASE_MODE_BINNING_1_3,
    OT_VI_REPHASE_MODE_BUTT
} ot_vi_rephase_mode;

【成员】

成员名称

描述

OT_VI_REPHASE_MODE_NONE

不进行相位调整。

OT_VI_REPHASE_MODE_SKIP_1_2

进行SKIP1/2类型的调整。

OT_VI_REPHASE_MODE_SKIP_1_3

进行SKIP1/3类型的调整。

OT_VI_REPHASE_MODE_BINNING_1_2

进行BINNING1/2类型的调整。

OT_VI_REPHASE_MODE_BINNING_1_3

进行BINNING1/3类型的调整。

【注意事项】

当前端sensor进行了相应的调整后,为了保持好的图像质量就需要在采集的时候进行相应的调整。

【相关数据类型及接口】

ot_vi_rephase_attr

ot_vi_rephase_attr

【说明】

定义bayer域相位调整属性。

【定义】

typedef struct {
    ot_vi_rephase_mode hor_rephase_mode;
    ot_vi_rephase_mode ver_rephase_mode;
} ot_vi_rephase_attr;

【成员】

成员名称

描述

hor_rephase_mode

水平相位调整类型。

ver_rephase_mode

垂直相位调整类型。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_bas_attr

ot_vi_scale_attr

【说明】

定义bayer域缩放属性。

【定义】

typedef struct {
    ot_size out_size;
} ot_vi_scale_attr;

【成员】

成员名称

描述

out_size

缩放之后的宽与高。

【解决方案差异】

【注意事项】

  • WDR模式下不支持BAS。

  • 前端输入YUV数据,则不支持BAS。

  • 前端RAW数据位宽大于14bit不支持BAS。

【相关数据类型及接口】

ot_vi_bas_attr

ot_vi_bas_attr

【说明】

定义bayer域属性。

【定义】

typedef struct {
    td_bool            enable;
    ot_vi_scale_attr   scale_attr;
    ot_vi_rephase_attr rephase_attr;
} ot_vi_bas_attr;

【成员】

成员名称

描述

enable

Bayer scale功能是否使能。

scale_attr

Bayer域缩放属性。

rephase_attr

Bayer域相位调整属性。

【注意事项】

  • BAS只支持1倍,2倍或者3倍缩小。

  • Rephase限制:BAS 打开rephase功能时(rephase的调整类型不是设置成OT_VI_REPHASE_MODE_NONE时),前端输入的宽度有限制,SS928V100最大输入宽度为2114,否则图像会出现异常。

  • 当DEV0开BAS功能时,只有PIPE0绑定在DEV0上才会得到BAS后的数据,其他PIPE绑定到DEV0无BAS效果。

【相关数据类型及接口】

ss_mpi_vi_set_bas_attr

ot_vi_thermo_work_mode

【说明】

定义热成像探测器的工作类型。

【定义】

typedef enum {
    OT_VI_THERMO_WORK_MODE_T0 = 0,
    OT_VI_THERMO_WORK_MODE_T1,
    OT_VI_THERMO_WORK_MODE_T2,
    OT_VI_THERMO_WORK_MODE_T3,
    OT_VI_THERMO_WORK_MODE_BUTT,
} ot_vi_thermo_work_mode;

【成员】

成员名称

描述

OT_VI_THERMO_WORK_MODE_T0

用于对接T0时序类型的热成像探测器。

OT_VI_THERMO_WORK_MODE_T1

用于对接T1时序类型的热成像探测器。

OT_VI_THERMO_WORK_MODE_T2

用于对接T2时序类型的热成像探测器。

OT_VI_THERMO_WORK_MODE_T3

用于对接T3时序类型的热成像探测器。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_thermo_sns_attr

ot_vi_sd_mux

【说明】

定义热成像输出的管脚乱序。

【定义】

typedef enum {
    OT_VI_SD_MUX_T0_SD0 = 0,
    OT_VI_SD_MUX_T0_SD1,
    OT_VI_SD_MUX_T1_SDA,
    OT_VI_SD_MUX_T1_FS,
    OT_VI_SD_MUX_T2_SDA0,
    OT_VI_SD_MUX_T2_SDA1,
    OT_VI_SD_MUX_T2_SDA2,
    OT_VI_SD_MUX_T2_FS,
    OT_VI_SD_MUX_BUTT
} ot_vi_sd_mux;

【成员】

成员名称

描述

OT_VI_SD_MUX_T0_SD0

T0类型的热成像探测器输出管脚SD0。

OT_VI_SD_MUX_T0_SD1

T0类型的热成像探测器输出管脚SD1。

OT_VI_SD_MUX_T1_SDA

T1类型的热成像探测器输出管脚SDA。

OT_VI_SD_MUX_T1_FS

T1类型的热成像探测器输出管脚FS。

OT_VI_SD_MUX_T2_SDA0

T2类型的热成像探测器输出管脚SDA0。

OT_VI_SD_MUX_T2_SDA1

T2类型的热成像探测器输出管脚SDA1。

OT_VI_SD_MUX_T2_SDA2

T2类型的热成像探测器输出管脚SDA2。

OT_VI_SD_MUX_T2_FS

T2类型的热成像探测器输出管脚FS。

【注意事项】

每一类热成像探测器只能配置对应类型的管脚,如T0类型的热成像探测器只能配置OT_VI_SD_MUX_T0_SD0和OT_VI_SD_MUX_T0_SD1,其余管脚配置为OT_VI_SD_MUX_BUTT。

【相关数据类型及接口】

ss_mpi_vi_set_thermo_sns_attr

ot_vi_thermo_sns_attr

【说明】

定义热成像探测器的配置属性。

【定义】

typedef struct {
    ot_vi_thermo_work_mode work_mode;
    ot_video_frame_info    ooc_frame_info;
    td_u32                 cfg_num;
    td_u8                  sns_cfg[OT_VI_MAX_SNS_CFG_NUM];
    td_u32                 frame_rate;
    ot_vi_sd_mux           sd_mux[OT_VI_MAX_SD_MUX_NUM];
} ot_vi_thermo_sns_attr;

【成员】

成员名称

描述

work_mode

热成像探测器的工作模式类型。

ooc_frame_info

OOC校正数据输入,数据高位对齐读入。

cfg_num

时序配置数据的个数。

sns_cfg

时序配置具体的数据。

frame_rate

输出帧率,此参数暂时不支持。

sd_mux

输出管脚的乱序配置。

【注意事项】

  • OOC校正数据只支持raw数据输入。

  • 配置的cfg_num最大值不能超过OT_VI_MAX_SNS_CFG_NUM。

【相关数据类型及接口】

ot_vi_dev_timing_attr

【说明】

定义VI DEV自生成时序属性。

【定义】

typedef struct {
    td_bool enable;
    td_u32  frame_rate;
} ot_vi_dev_timing_attr;

【成员】

成员名称

描述

enable

自产生时序使能开关。

frame_rate

自产生时序的帧率。

【注意事项】

  • 使用此功能时,需配置Sensor类型与RAW数据文件的宽高相等,如均为4000px*3000px或者3840px*2160px。

  • 当使能自产生时序后,若用户设置的帧率超过设备最大帧率时,系统自动以设备最大帧率为有效值;同时用户设置的帧率必须大于0,否则返回错误。

  • 设备最大帧率由设备对应的时钟clk、设备宽高共同决定。

【相关数据类型及接口】

ss_mpi_vi_set_dev_timing_attr

ot_vi_dev_data_attr

【说明】

定义VI DEV自生成数据属性。

【定义】

typedef struct {
    td_bool enable;
} ot_vi_dev_data_attr;

【成员】

成员名称

描述

enable

自产生数据使能开关。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_vi_set_dev_data_attr

ot_vi_bind_pipe

【说明】

定义VI DEV与PIPE的绑定关系。

【定义】

typedef struct {
    td_u32     pipe_num;
    ot_vi_pipe  pipe_id[OT_VI_MAX_PHYS_PIPE_NUM];
} ot_vi_bind_pipe;

【成员】

成员名称

描述

pipe_num

该VI Dev所绑定的PIPE数目,取值范围[1, OT_VI_MAX_PHYS_PIPE_NUM]。

pipe_id

该VI Dev绑定的PIPE号。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_vi_get_bind_by_dev

ot_vi_wdr_fusion_grp_attr

【说明】

定义VI WDR融合组的属性。

【定义】

typedef struct {
    ot_wdr_mode wdr_mode;
    td_u32      cache_line;
    ot_vi_pipe   pipe_id[OT_VI_MAX_WDR_FRAME_NUM];
    td_bool      pipe_reverse;
} ot_vi_wdr_fusion_grp_attr;

【成员】

成员名称

描述

wdr_mode

WDR工作模式,分为帧模式、行模式、非WDR等三大类。

cache_line

在线行模式WDR,离线PIPE数据缓存的行数。

取值范围:[1,PIPE的图像高度size.height]。根据带宽的使用情况和sensor的曝光行差等因素来调节到合适值。

pipe_id

确定哪几个pipe的数据要做WDR融合。

pipe_reverse

WDR融合组主pipe反转标记,设置为TRUE时最大的pipe_id为融合主pipe,FALSE时最小的pipe_id为融合主pipe。

【解决方案差异】

解决方案

支持的WDR模式

支持缓存行数

SS928V100

OT_WDR_MODE_NONE,

OT_WDR_MODE_BUILT_IN,

OT_WDR_MODE_2To1_LINE,

OT_WDR_MODE_2To1_FRAME,

OT_WDR_MODE_3To1_LINE,

支持。

【注意事项】

  • 芯片跑在线WDR时,cache_line需被VI DEV高度整除;需大于长短帧曝光的第一行的行数差距,需大于100。

  • 若配置后出现图像效果异常时,则需调节配置的卷绕行数。推荐配置为DEV高度的一半。

  • 在线WDR时,会创建一个私有VB;离线WDR时,使用公共VB轮转。

  • WDR卷绕的配置可减小在线WDR私有VB的大小,仅在线WDR行模式才支持。

  • 线性模式可不配置WDR组,若配置,则cache_line不能配置为0,否则会配置失败。

  • pipe_reverse须配合ss_mpi_vi_set_pipe_vc_number接口使用,在需要将长短帧交换FE处理的场景下使用:如2To1模式下FE0处理长帧,FE1处理短帧,需设置pipe_reverse为TRUE,同时交换两路pipe的vc_number。

  • 配置WDR组属性后,获取对应isp统计信息需要从对应的WDR主pipe获取;如pipe0, 1做wdr融合,若配置了pipe_reverse,则需要从pipe1(isp1)上获取统计信息,此时isp通路也只需要起isp1,不需要配置isp0。

【相关数据类型及接口】

ss_mpi_vi_set_wdr_fusion_grp_attr

ot_vi_pipe_bypass_mode

【说明】

定义VI PIPE的Bypass模式。

【定义】

typedef enum {
    OT_VI_PIPE_BYPASS_NONE = 0,
    OT_VI_PIPE_BYPASS_FE,
    OT_VI_PIPE_BYPASS_BE,
    OT_VI_PIPE_BYPASS_BUTT
} ot_vi_pipe_bypass_mode;

【成员】

成员名称

描述

OT_VI_PIPE_BYPASS_NONE

VI的数据经过FE与BE处理。

OT_VI_PIPE_BYPASS_FE

VI的数据不经过FE处理,只经过BE处理。

OT_VI_PIPE_BYPASS_BE

VI的数据经过FE处理,不经过BE处理。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_pipe_attr

ot_vi_bit_align_mode

【说明】

定义VI PIPE写出16bit Raw时是高/低位对齐。

【定义】

typedef enum {
    OT_VI_BIT_ALIGN_MODE_HIGH = 0,
    OT_VI_BIT_ALIGN_MODE_LOW,
    OT_VI_BIT_ALIGN_MODE_BUTT
} ot_vi_bit_align_mode;

【成员】

成员名称

描述

OT_VI_BIT_ALIGN_MODE_HIGH

VI 16bit Raw有效数据高位对齐。

OT_VI_BIT_ALIGN_MODE_LOW

VI 16bit Raw有效数据低位对齐。

【注意事项】

该参数在pixel_format = OT_PIXEL_FORMAT_RGB_BAYER_16BPP时生效。

【相关数据类型及接口】

ot_vi_pipe_attr

ot_vi_pipe_attr

【说明】

定义VI PIPE属性。

【定义】

typedef struct {
    ot_vi_pipe_bypass_mode pipe_bypass_mode;
    td_bool                isp_bypass;
    ot_size                size;
    ot_pixel_format        pixel_format;
    ot_compress_mode       compress_mode;
    ot_data_bit_width      bit_width;
    ot_vi_bit_align_mode   bit_align_mode;
    ot_frame_rate_ctrl     frame_rate_ctrl
} ot_vi_pipe_attr;

【成员】

成员名称

描述

pipe_bypass_mode

VI PIPE的Bypass模式。

静态属性创建PIPE时设定不可更改。

isp_bypass

ISP是否bypass

TD_FALSE:ISP正常运行

TD_TRUE:ISP bypass,不运行ISP

静态属性创建PIPE时设定不可更改。

size

输入图像宽高。

静态属性创建PIPE时设定不可更改。

在线模式下宽高取值范围

[OT_VI_PIPE_ONLINE_MIN_WIDTH, OT_VI_PIPE_ONLINE_MAX_WIDTH] [OT_VI_PIPE_ONLINE_MIN_HEIGHT, OT_VI_PIPE_ONLINE_MAX_HEIGHT]

离线模式下取值范围:

[OT_VI_PIPE_OFFLINE_MIN_WIDTH, OT_VI_PIPE_OFFLINE_MAX_WIDTH]

[OT_VI_PIPE_OFFLINE_MIN_HEIGHT, OT_VI_PIPE_OFFLINE_MAX_HEIGHT]

pixel_format

像素格式。

compress_mode

数据压缩格式。具体信息请参考“系统控制”章节。

bit_width

输入图像的bit位宽。

静态属性创建PIPE时设定不可更改,仅当像素格式pixel_format为YUV像素格式时有效。

bit_align_mode

VI PIPE写出16bit Raw时是高/低位对齐。

frame_rate_ctrl

帧率控制。

取值范围请参考“系统控制”章节。

【解决方案差异】

解决方案

pixel_format的取值范围差异:

compress_mode的取值范围差异:

pipe_bypass_mode的取值范围差异:

SS928V100

支持RAW格式和YUV数据格式。

线性模式时,支持非压、行压缩和帧压缩模式。

WDR模式时,支持非压和行压缩模式;帧压缩模式只有WDR离线支持,WDR在线不支持。

虚拟PIPE只支持OT_VI_PIPE_BYPASS_FE。

【注意事项】

  • pixel_format定义当前PIPE接收的图像像素格式,当为Raw数据时,可以动态修改为不同位宽的像素格式(位宽低于实际输入Raw位宽时有精度损失),当为YUV格式数据时,可以动态修改为SP420,SP422,但是建议与输入保持一致,否则可能导致图像异常。

  • isp_bypass表示是否bypass ISP的算法。

    • 当输入为Raw数据时,须设置为TD_FALSE才能正常输出通道YUV数据。

    • 当输入为YUV时,则可以设置为TD_TRUE或者TD_FALSE。

    • 当YUV需要获取AF统计信息和YUV图像处理时,isp_bypass参数设置成TD_FALSE;

    • 当YUV不需要经过ISP处理时,isp_bypass参数设置成TD_TRUE,同时强烈建议不起ISP业务,避免内存等资源的浪费。

  • 当参数pipe_bypass_mode设置成OT_VI_PIPE_BYPASS_BE时,不支持从该PIPE灌YUV。

  • 当参数pipe_bypass_mode设置成OT_VI_PIPE_BYPASS_BE时,PIPE只能处于OT_VI_OFFLINE_VPSS_OFFLINE模式。

  • compress_mode表示压缩类型,所有支持的数据类型都支持非压缩。当输入数据像素格式为OT_PIXEL_FORMAT_RGB_BAYER_10BPP,OT_PIXEL_FORMAT_RGB_BAYER_12BPP,OT_PIXEL_FORMAT_RGB_BAYER_14BPP时,线性模式下压缩类型支持OT_COMPRESS_MODE_LINE和OT_COMPRESS_MODE_FRAME,WDR模式下支持OT_COMPRESS_MODE_LINE,当输入数据为YUV数据时不支持压缩。

  • 像素格式为OT_PIXEL_FORMAT_RGB_BAYER_16BPP和OT_PIXEL_FORMAT_RGB_BAYER_8BPP时,不支持压缩。

  • 参数bit_width表示输入数据类型为YUV时的数据位宽,不能动态设置,SS928V100不支持10bit的YUV数据输入。

  • 参数size需与ot_isp_pub_attr的wnd_rect宽高保持一致,宽高必须保持4对齐。

  • PIPE的帧率控制只有离线或者使能了dump属性才有效。

  • bit_align_mode通常场景下都设置成OT_VI_BIT_ALIGN_MODE_HIGH,VI离线场景下如果需要设置成OT_VI_BIT_ALIGN_MODE_LOW,需要设置frame_source为OT_VI_PIPE_FRAME_SOURCE_USER,不能送给pipe处理,否则后端图像会出现异常(因为低位对齐后数据变小而成黑色图像)。

【相关数据类型及接口】

ot_vi_frame_dump_attr

【说明】

定义VI PIPE dump frame属性。

【定义】

typedef struct {
  td_bool enable;
  td_u32  depth;
} ot_vi_frame_dump_attr;

【成员】

成员名称

描述

enable

是否使能dump图像帧。

depth

Dump图像帧的队列深度。取值范围:[0, 8]。

【解决方案差异】

无。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_private_data_mode

【说明】

定义VI PIPE dump 私有数据的类型。

【定义】

typedef enum {
    OT_VI_PRIVATE_DATA_MODE_BACK = 0,
    OT_VI_PRIVATE_DATA_MODE_FRONT,
    OT_VI_PRIVATE_DATA_MODE_BUTT
} ot_vi_private_data_mode;

【成员】

成员名称

描述

OT_VI_PRIVATE_DATA_MODE_BACK

私有数据在帧信息的后消隐区。

OT_VI_PRIVATE_DATA_MODE_FRONT

私有数据在帧信息的前消隐区。

【解决方案差异】

无。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_private_data_dump_attr

【说明】

定义VI PIPE dump 私有数据属性。

【定义】

typedef struct {
    td_bool enable;
    ot_vi_private_data_mode data_mode;
    td_u32  depth;
    td_u32  data_size;
} ot_vi_private_data_dump_attr;

【成员】

成员名称

描述

enable

是否使能dump私有数据。

data_mode

VI PIPE dump 私有数据的类型。

depth

Dump私有数据的队列深度。取值范围:[0, 8]。

data_size

私有数据的大小,单位:Byte

【解决方案差异】

无。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_private_data_info

【说明】

定义VI PIPE 私有数据相关的信息。

【定义】

typedef struct {
    td_u32 pool_id;
    td_u64 phys_addr;
    td_u64 pts;
} ot_vi_private_data_info;

【成员】

成员名称

描述

pool_id

私有数据使用pool id。

phys_addr

私有数据的物理地址。

pts

私有数据的时间戳,用于与图像帧同步。

【解决方案差异】

无。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_out_mode

【说明】

定义VI Stagger 模式。

【定义】

typedef enum {
    OT_VI_OUT_MODE_NORM = 0,
    OT_VI_OUT_MODE_2F1_STAGGER,
    OT_VI_OUT_MODE_3F1_STAGGER,
    OT_VI_OUT_MODE_4F1_STAGGER,
    OT_VI_OUT_MODE_BUTT
} ot_vi_out_mode;

【成员】

成员名称

描述

OT_VI_OUT_MODE_NORM

正常采集模式。

OT_VI_OUT_MODE_2F1_STAGGER

两帧采集stagger模式。

OT_VI_OUT_MODE_3F1_STAGGER

三帧采集stagger模式。

OT_VI_OUT_MODE_4F1_STAGGER

四帧采集stagger模式。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_pipe_param

【说明】

定义VI PIPE参数。

【定义】

typedef struct {
    td_bool discard_pro_pic_en;
    ot_vi_out_mode out_mode;
    ot_data_rate data_rate;
} ot_vi_pipe_param;

【成员】

成员名称

描述

discard_pro_pic_en

双pipe pro模式抓拍下,视频路是否丢掉长曝光帧。

out_mode

pipe stagger模式。

data_rate

pipe 写出速率。

【注意事项】

  • data_rate参数用于将wdr时序线性接入的场景,将pipe默认的DATA_RATE_X2调成DATA_RATE_X1。

  • out_mode 仅支持在start pipe之前修改,pipe 启动后再修改out_mode将返回报错。

  • out_mode 配置为stagger模式,与pipe pre_crop功能、设备bas功能互斥。

  • VI在线模式不支持修改out_mode为stagger模式。

【相关数据类型及接口】

ot_vi_pipe_frame_source

【说明】

定义VI PIPE数据的来源类型。

【定义】

typedef enum {
    OT_VI_PIPE_FRAME_SOURCE_FE = 0,
    OT_VI_PIPE_FRAME_SOURCE_USER,
    OT_VI_PIPE_FRAME_SOURCE_BUTT
} ot_vi_pipe_frame_source;

【成员】

成员名称

描述

OT_VI_PIPE_FRAME_SOURCE_FE

数据来自于前端FE,默认模式。

OT_VI_PIPE_FRAME_SOURCE_USER

数据来自用户送进来的数据。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_pipe_status

【说明】

定义VI PIPE的状态信息。

【定义】

typedef struct {
    td_bool enable; 
    td_u32  frame_rate; 
    td_u32  interrupt_cnt; 
    td_u32  lost_frame_cnt;
    td_u32  vb_fail_cnt; 
    ot_size size;
} ot_vi_pipe_status;

【成员】

成员名称

描述

enable

当前PIPE是否使能。

frame_rate

VI PIPE的实时帧率。

interrupt_cnt

中断计数。

lost_frame_cnt

丢帧计数。

vb_fail_cnt

VB申请失败计数。

size

PIPE当前图像大小。

【注意事项】

  • 当PIPE处于VI离线,VPSS离线模式,所有字段都有效。

  • 当PIPE处于VI离线,VPSS在线模式,所有字段都有效。

  • 当使能了用户图片,frame_rate无效。

  • 用户从BE送RAW,送YUV不会统计到frame_rate中。

  • 用户从FE送RAW,当PIPE处于VI在线,VPSS离线或者VI在线,VPSS在线,如果未使能dump功能,由于无帧数据输出,则frame_rate无效。

【相关数据类型及接口】

ss_mpi_vi_query_pipe_status

ot_vi_compress_param

【说明】

定义VI PIPE的RAW数据压缩参数。

【定义】

typedef struct {
    td_u8 compress_param[OT_VI_COMPRESS_PARAM_SIZE];
} ot_vi_compress_param;

【成员】

成员名称

描述

compress_param

压缩参数。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_vi_get_pipe_compress_param

ot_vi_chn_attr

【说明】

定义VI通道属性。

【定义】

typedef struct {
    ot_size              size;
    ot_pixel_format      pixel_format;
    ot_dynamic_range     dynamic_range;
    ot_video_format      video_format;
    ot_compress_mode     compress_mode;
    td_bool              mirror_en;
    td_bool              flip_en;
    td_u32               depth;
    ot_frame_rate_ctrl   frame_rate_ctrl;
} ot_vi_chn_attr;

【成员】

成员名称

描述

size

目标图像大小

目标图像的最小宽高与最大宽高:

在线模式下宽度

[OT_VI_PHYS_CHN_ONLINE_MIN_WIDTH,OT_VI_PHYS_CHN_ONLINE_MAX_WIDTH]

在线模式下高度

[OT_VI_PHYS_CHN_ONLINE_MIN_HEIGHT,OT_VI_PHYS_CHN_ONLINE_MAX_HEIGHT]

离线模式下宽度

[OT_VI_PHYS_CHN_OFFLINE_MIN_WIDTH,OT_VI_PHYS_CHN_OFFLINE_MAX_WIDTH]

离线模式下高度

[OT_VI_PHYS_CHN_OFFLINE_MIN_HEIGHT,OT_VI_PHYS_CHN_OFFLINE_MAX_HEIGHT]

pixel_format

目标图像像素格式。具体描述请参见“系统控制”章节。

设置CHN时设定,可动态更改。

dynamic_range

目标图像动态范围

静态属性,设置CHN时设定,不可更改。

具体描述请参见“系统控制”章节。

video_format

目标图像视频数据格式。

具体描述请参见“系统控制”章节。

compress_mode

目标图像压缩格式。

具体描述请参见“系统控制”章节。

mirror_en

Mirror使能开关。

TD_FALSE:不使能;

TD_TRUE:使能。

flip_en

Flip使能开关。

TD_FALSE:不使能;

TD_TRUE:使能。

depth

用户获取图像的队列深度,取值范围:[0, 8]

frame_rate_ctrl

帧率控制。

源帧率取值范围:(0, 240],以及-1。

目标帧率取值范围:[-1, 240]

当源帧率为-1时,目标帧率必须为-1(不进行帧率控制),其他情况下,目标帧率不能大于源帧率

具体描述请参见“系统控制”章节。

【解决方案差异】

【注意事项】

  • 若LDC/ROTATION_FREE/SPREAD/DIS使能,size不可动态更改,视频数据格式为线性。

  • 如果ROTATION已经设置成90/180/270旋转,通道属性不能设置成压缩。

  • 若GME DIS使能,不能使能MIRROR,FLIP,缩放,CROP。

  • 宽高必须4对齐。

【相关数据类型及接口】

ot_vi_ext_chn_attr

【说明】

定义VI扩展通道属性。

【定义】

typedef struct {
    ot_vi_chn           bind_chn;
    ot_ext_chn_src_type src_type;
    ot_size             size;
    ot_pixel_format     pixel_format;
    ot_video_format          video_format;
    ot_dynamic_range       dynamic_range;
    ot_compress_mode    compress_mode;
    td_u32              depth;
    ot_frame_rate_ctrl frame_rate_ctrl; 
} ot_vi_ext_chn_attr;

【成员】

成员名称

描述

bind_chn

绑定的源物理通道。

src_type

定义扩展通道的图像来源。

具体描述请参见“系统控制”章节。

size

目标图像大小

目标图像的最小宽高与最大宽高:

宽度:

[OT_VI_EXT_CHN_MIN_WIDTHOT_VI_EXT_CHN_MAX_WIDTH]

高度:

[OT_VI_EXT_CHN_MIN_HEIGHTOT_VI_EXT_CHN_MAX_HEIGHT]

pixel_format

目标图像像素格式。具体描述请参见“系统控制”章节。

video_format

目标图像视频数据格式。具体描述请参见“系统控制”章节。

dynamic_range

目标图像动态范围。具体描述请参见“系统控制”章节。

compress_mode

目标图像压缩格式。具体描述请参见“系统控制”章节。

depth

用户获取图像的队列深度,取值范围:[0, 8]。

frame_rate_ctrl

帧率控制。

源帧率取值范围:(0, 240],以及-1。

目标帧率取值范围:[-1, 240]。

当源帧率为-1时,目标帧率必须为-1(不进行帧率控制),其他情况下,目标帧率不能大于源帧率

具体描述请参见“系统控制”章节。

【解决方案差异】

【注意事项】

扩展通道宽高必须4对齐。

【相关数据类型及接口】

ot_vi_crop_info

【说明】

定义VI CROP信息结构体。

【定义】

typedef struct {
    td_bool  enable;
    ot_coord crop_mode;
    ot_rect  rect;
} ot_vi_crop_info;

【成员】

成员名称

描述

enable

CROP使能开关。

crop_mode

CROP起点坐标模式。

rect

CROP的矩形区域

OT_COORD_ABS模式下的取值范围如下

  • rect.x[0, 通道最大宽度 – 1]
  • rect.y[0, 通道最大高度 – 1]
  • rect.width在[通道最小宽度,通道最大宽度]
  • rect.height在[通道最小高度,通道最大高度]

【解决方案差异】

【注意事项】

  • 若crop_mode为OT_COORD_RATIO(相对坐标模式),使用rect的成员时应做转换,计算公式为:

    • x = 起始点坐标x原始图像宽度/1000,合法取值范围[0, 999],计算完成后会进行取整操作和对齐操作。公式同样适用于纵坐标计算,X/Y坐标都是2对齐。

    • width =区域宽度x实际图像宽度/1000,区域宽度取值范围[1, 1000]。计算完成后会进行取整操作和2字节对齐操作。公式同样适用于区域高度计算。

    • 计算后的宽高不能小于通道支持的最小宽高。

  • 若crop_mode为OT_COORD_ABS(绝对坐标模式),X/Y坐标都是要求2对齐,宽高要求2对齐。

【相关数据类型及接口】

ot_vi_chn_status

【说明】

定义VI 通道的状态信息。

【定义】

typedef struct {
    td_bool enable;
    td_u32  frame_rate;
    td_u32  lost_frame_cnt;
    td_u32  vb_fail_cnt;
    ot_size size;
} ot_vi_chn_status;

【成员】

成员名称

描述

enable

当前通道是否使能。

0:不使能;

1:使能。

frame_rate

VI 通道的实时帧率。

lost_frame_cnt

丢帧计数。

vb_fail_cnt

VB申请失败计数。

size

通道当前图像大小。

【注意事项】

  • 当PIPE处于VI离线,VPSS离线模式,所有字段都有效。

  • 当PIPE处于VI离线,VPSS在线模式,该接口不支持。

  • 当PIPE处于VI在线,VPSS离线模式,所有字段都有效。

  • 当PIPE处于VI在线,VPSS在线模式,该接口不支持。

【相关数据类型及接口】

ss_mpi_vi_query_chn_status

ot_vi_stitch_cfg_mode

【说明】

定义拼接组ISP配置的同步方式。

【定义】

typedef enum {
    OT_VI_STITCH_CFG_MODE_NORM = 0,
    OT_VI_STITCH_CFG_MODE_SYNC,
    OT_VI_STITCH_CFG_MODE_BUTT
} ot_vi_stitch_cfg_mode;

【成员】

成员名称

描述

OT_VI_STITCH_CFG_MODE_NORM

拼接组内的PIPE独立使用对应ISP的配置。

OT_VI_STITCH_CFG_MODE_SYNC

拼接组内的PIPE共同使用拼接组内第0个PIPE对应ISP的配置。

【解决方案差异】

无。

【注意事项】

无。

【相关数据类型及接口】

ot_vi_stitch_grp_attr

ot_vi_stitch_grp_attr

【说明】

定义VI 拼接组的属性。

【定义】

typedef struct {
    td_bool               stitch_en;
    ot_vi_stitch_cfg_mode cfg_mode;
    td_u32                max_pts_gap;
    td_u32                pipe_num;
    ot_vi_pipe            pipe_id[OT_VI_MAX_PHYS_PIPE_NUM];
} ot_vi_stitch_grp_attr;

【成员】

成员名称

描述

stitch_en

是否使能拼接组。

cfg_mode

拼接组ISP配置的同步方式。

max_pts_gap

多路拼接图像之间的最大时间间隔,单位us。

pipe_num

拼接组包含的VI PIPE数目

取值范围:[2, OT_VI_MAX_PHYS_PIPE_NUM]

pipe_id

拼接组包含的PIPE号

【解决方案差异】

无。

【注意事项】

  • 一个PIPE最多只能属于一个拼接组。

  • SYNC模式不支持虚拟pipe设置拼接属性。

【相关数据类型及接口】

ot_vi_mod_param

【说明】

定义VI模块参数。

【定义】

typedef struct {
    td_s32 detect_err_frame;
    td_u32 drop_err_frame;
} ot_vi_mod_param;

【成员】

成员名称

描述

detect_err_frame

该参数表示是否由客户来控制VI的时序异常实时检测。

  • 大于0:由用户控制;
  • 等于0:由SDK来控制实时检测,只要检测到错误图像就丢帧;
  • 小于0:关闭错误检测功能。

默认值为0。

drop_err_frame

该参数表示当检测到图像错误时,连续丢多少帧(不管后面的图像是否正确)。

  • 0:表示不开启连续丢帧功能,只丢弃当前的错误帧;
  • 大于0:连续丢drop_err_frame帧(含当前帧)。

默认值为0。

【注意事项】

无。

【相关数据类型及接口】

OT_DIS_MAX_IMAGE_WIDTH

【说明】

定义DIS的最大图像宽度。

【定义】

#define  OT_DIS_MAX_IMAGE_WIDTH     (8192)

【注意事项】

解决方案

DIS的最大图像宽度

SS928V100

8192

【相关数据类型及接口】

无。

OT_DIS_MAX_IMAGE_HEIGHT

【说明】

定义DIS的最大图像高度。

【定义】

#define OT_DIS_MAX_IMAGE_HEIGHT     (8192)

【注意事项】

解决方案

DIS的最大图像高

SS928V100

8192

【相关数据类型及接口】

无。

OT_DIS_MIN_IMAGE_WIDTH

【说明】

定义DIS的最小图像宽度。

【定义】

#define OT_DIS_MIN_IMAGE_WIDTH     (160)

【注意事项】

无。

【相关数据类型及接口】

无。

OT_DIS_MIN_IMAGE_HEIGHT

【说明】

定义DIS的最小图像高度。

【定义】

#define OT_DIS_MIN_IMAGE_HEIGHT    (120)

【注意事项】

无。

【相关数据类型及接口】

无。

ot_dis_mode

【说明】

定义DIS防抖算法模式。

【定义】

typedef enum {
    OT_DIS_MODE_4_DOF_GME = 0,       /* Only use with GME in 4 dof. */
    OT_DIS_MODE_6_DOF_GME,           /* Only use with GME in 6 dof. */
    OT_DIS_MODE_GYRO,                /* Only use with gyro in 6 dof. */
    OT_DIS_MODE_HYBRID,              /* Use with gyro and gme. */
    OT_DIS_MODE_BUTT,
} ot_dis_mode;

【成员】

成员名称

描述

OT_DIS_MODE_4_DOF_GME

四自由度GME算法,不使用陀螺仪

OT_DIS_MODE_6_DOF_GME

六自由度GME算法,不使用陀螺仪

OT_DIS_MODE_GYRO

陀螺仪算法,不使用GME

OT_DIS_MODE_HYBRID

混合防抖算法,使用陀螺仪和GME

【注意事项】

  • 仅SS928V100支持DIS的OT_DIS_MODE_GYRO模式。

  • 仅SS928V100支持DIS的OT_DIS_MODE_HYBRID模式,HYBRID模式支持的最大图像分辨率为4096x4096。

【相关数据类型及接口】

ot_dis_motion_level

【说明】

定义镜头的运动级别。

【定义】

typedef enum {
    OT_DIS_MOTION_LEVEL_LOW = 0,   /* Low motion level. */
    OT_DIS_MOTION_LEVEL_NORM,      /* Normal motion level. */
    OT_DIS_MOTION_LEVEL_HIGH,      /* High motion level. */
    OT_DIS_MOTION_LEVEL_BUTT
} ot_dis_motion_level;

【成员】

成员名称

描述

OT_DIS_MOTION_LEVEL_LOW

低级别运动,镜头小幅度运动。

OT_DIS_MOTION_LEVEL_NORM

正常级别运动,镜头正常幅度运动。

OT_DIS_MOTION_LEVEL_HIGH

高级别运动,镜头大幅度运动。

【注意事项】

SS928V100不支持OT_DIS_MOTION_LEVEL_LOW。

【相关数据类型及接口】

ot_dis_pdt_type

【说明】

定义使用DIS的产品形态。

【定义】

typedef enum {
    OT_DIS_PDT_TYPE_RECORDER = 0,   /* RECORDER product type. */
    OT_DIS_PDT_TYPE_DV,        /* DV product type. */
    OT_DIS_PDT_TYPE_DRONE,     /* DRONE product type. */
    OT_DIS_PDT_TYPE_BUTT
} ot_dis_pdt_type;

【成员】

成员名称

描述

OT_DIS_PDT_TYPE_RECORDER

录像机产品形态。

OT_DIS_PDT_TYPE_DV

DV产品形态

OT_DIS_PDT_TYPE_DRONE

无人机产品形态。

【注意事项】

无。

【相关数据类型及接口】

ot_dis_cfg

【说明】

定义DIS的配置信息。

【定义】

typedef struct {
    ot_dis_mode         mode;
    ot_dis_motion_level  motion_level;
    ot_dis_pdt_type     pdt_type;
    td_u32              buf_num;
    td_u32              crop_ratio;
    td_u32              frame_rate;
    td_bool             camera_steady;
    td_bool             scale;
} ot_dis_cfg;

【成员】

成员名称

描述

mode

DIS中使用不同自由度防抖算法,共有3种不同算法。

motion_level

Camera的运动级别。仅对GME和HYBRID模式有效。

pdt_type

使用DIS的产品形态,当前支持录像机、DV和无人机。

buf_num

DIS用于缓存图像的buf数目,在DIS输出帧率偶尔出现丢帧时,可以增加缓存buf数。

取值范围:[5,10]。仅对GME和HYBRID模式有效。

crop_ratio

DIS输出图像的裁剪比例。

取值范围:[50,98]

frame_rate

设置帧率。

取值范围:

SS928V100:[1, 120]

请设置为VI输出的实际帧率。

为了获得较好的防抖效果,建议帧率25帧以上。

  • 当防抖模式为OT_DIS_MODE_4_DOF_GME/OT_DIS_MODE_6_DOF_GME时,低帧率会导致两帧间隔变大,两帧之间抖动幅度增加,同时,rolling shutter现象也更加严重,预期可能会出现防抖效果下降,特别是在抖动幅度大的场景;
  • 当防抖模式为DIS_MODE_GYRO;除了对防抖效果的影响和GME一致外,随着帧率的降低,陀螺仪的最高采样率将下降。当最小帧率为20时,陀螺仪采样率不能高于2.5KHz。当最小帧率为15时,陀螺仪采样率不能高于1.8KHz。

camera_steady

镜头是否固定静止的。

scale

Crop后的输出图像是否进行放大。当前DIS提供Crop后的输出图像是否进行放大操作选择。如果用户不想采用在DIS放大功能,可以选择在后端的VPSS进行放大操作。

scale为false的情况下输出图像宽高等于输入宽高乘以crop_ratio,输出宽高是2对齐的。

【注意事项】

  • camera_steady只在_录像机_产品形态下有效,在DV和无人机产品形态下会默认设置为TD_FALSE。

  • ot_dis_cfg中的参数除crop_ratio外,其他参数都不可动态修改,如果需要修改,必须先关闭DIS,再动态修改ot_dis_cfg中的参数。

  • 对于crop_ratio参数:

    • scale为TRUE时,crop_ratio可以调用接口ss_mpi_vi_set_chn_dis_cfg动态修改。

    • scale为FALSE时,crop_ratio不可以动态修改,必须先关闭DIS,再动态修改crop_ratio值。

  • 对于参数未有任何修改,但调用ss_mpi_vi_set_chn_dis_cfg重复设置时,接口返回成功。

【相关数据类型及接口】

ot_dis_attr

【说明】

定义DIS属性。

【定义】

typedef struct {
    td_bool enable;
    td_bool gdc_bypass;
    td_u32  moving_subject_level;
    td_s32  rolling_shutter_coef;
    td_s32  timelag;
    td_u32  hor_limit;
    td_u32  ver_limit;
    td_bool still_crop;
    td_u32  strength;
} ot_dis_attr;

【成员】

成员名称

描述

enable

DIS使能开关。

TD_FALSE:不使能;

TD_TRUE:使能。

gdc_bypass

DIS功能中是否Bypass GDC的开关。

TD_FALSE:不使能Bypass GDC功能即正常调用GDCPMF矫正

TD_TRUE:使能Bypass GDC功能即不调用GDCPMF矫正。

moving_subject_level

用于判断物体是否是运动的级别,取值范围:[0,7]。仅对GME和HYBRID模式有效。级别越大,防抖效果越弱。值越小,运动过程中越稳定,但更容易出现偏移情况。值较大时,运动过程中背景抖动幅度大,但能够改善图像偏移现象。

请根据具体应用场景设置级别大小。

rolling_shutter_coef

校正rolling shutter现象的校正参数。

取值范围:[0, 1000]

timelag

帧起始时间和陀螺仪数据采集时间的时间差,取值范围:[-2000000, 2000000],单位为微秒。仅对GYRO和HYBRID模式有效。当值设置较大时会发生丢帧卡死。

hor_limit

水平偏移限制,取值范围:[0,1000]。仅对GME和HYBRID模式有效。当大面积物体经过引起背景拖拽的水平偏移超过一定幅度时就不进行防抖。偏移幅度计算:2047 * hor_limit/1000。

ver_limit

垂直偏移限制,取值范围:[0,1000]。仅对GME和HYBRID模式有效。当大面积物体经过引起背景拖拽的垂直偏移超过一定幅度时就不进行防抖。偏移幅度计算:2047 * ver_limit/1000。

still_crop

DIS防抖效果开关,默认为FALSE,当DIS使能为TRUE时生效。

TD_FALSE: 有DIS防抖效果,图像保持裁剪比例输出。

TD_TRUE: 没有DIS防抖效果,图像保持裁剪比例输出。

strength

陀螺仪防抖的强度控制,取值范围:[0,1024]。仅对GYRO和HYBRID模式有效,对GME模式无效,默认强度为1024。

【注意事项】

  • hor_limit和ver_limit只在camera_steady为TD_TRUE时生效,当camera_steady为TD_FALSE时,会默认设置为最大值。

  • 在SS928V100上不建议使用gdc_bypass参数作为DIS功能开关,默认设置其值为TD_FALSE,当设置为TD_TRUE时,DIS的PMF矫正功能不生效。使用中,如果不想使能DIS,请设置DIS开关enable为TD_FALSE;如果想使能DIS,请把DIS开关enable设置为TD_TRUE,同时把gdc_bypass设置为TD_FALSE。

【相关数据类型及接口】

ot_dis_param

【说明】

定义DIS可选参数。

【定义】

typedef struct {
    td_u32 large_motion_stable_coef;
    td_u32 low_freq_motion_preserve;
    td_u32 low_freq_motion_freq;
    td_bool fpd_adaptive_en;
} ot_dis_param;

【成员】

成员名称

描述

large_motion_stable_coef

大幅度运动的防抖衰减参数。取值范围[0, 100]。默认值及具体参数效果参见《DIS 调试指南》。

low_freq_motion_preserve

低频运动的保留程度。取值范围[0, 100]。默认值及具体参数效果参见《DIS 调试指南》。

low_freq_motion_freq

低频运动的截止频率。取值范围[0, 100]。默认值及具体参数效果参见《DIS 调试指南》。

fpd_adaptive_en

自适应查找特征点对数阈值的开关。默认值及具体参数效果参见《DIS 调试指南》。

TD_FALSE:不使能自适应查找特征点阈值功能;

TD_TRUE:使能自适应查找特征点阈值功能。

【注意事项】

  • 参数只在GME和HYBRID模式下有效,不配置使用默认参数。

  • 算法特征点对数的阈值默认是30对,fpd_adaptive_en使能后会自适应降低阈值,最低降低到10对,fpd_adaptive_en关闭、enable开关关闭或still_crop开关打开后,特征点阈值都会恢复成默认的30。

【相关数据类型及接口】

ot_dis_wdr_attr

【说明】

定义DIS WDR属性。

【定义】

typedef struct {
    td_u32 match_frame;
} ot_dis_wdr_attr;

【成员】

成员名称

描述

match_frame

WDR 匹配帧参数。

WDR模式为2TO1时取值范围[0, 1],0为匹配短帧,1为匹配长帧;

WDR模式为3TO1时取值范围[0, 2],0为匹配短帧,1为匹配中帧,2为匹配长帧。

【注意事项】

参数只在GYRO模式下有效,不配置使用默认参数

【相关数据类型及接口】

ot_vi_fov_correction_attr

【说明】

定义视场角矫正属性。

【定义】

typedef struct {
    td_bool enable;
    td_s64 correction_coef[OT_VI_CORRECTION_COEF_NUM]; /* matrix for match the two */
} ot_vi_fov_correction_attr;

【成员】

成员名称

描述

enable

视场角是否使能。

correction_coef

视场角矫正PMF系数。

【注意事项】

无。

【相关数据类型及接口】

错误码

视频输入API错误码如下所示。

表 1 视频输入API错误码

错误代码

宏定义

描述

0xa0108001

OT_ERR_VI_INVALID_DEV_ID

视频输入设备号无效

0xa0108002

OT_ERR_VI_INVALID_PIPE_ID

视频输入PIPE号无效

0xa0108003

OT_ERR_VI_INVALID_CHN_ID

视频输入通道号无效

0xa0108005

OT_ERR_VI_INVALID_GRP_ID

视频输入组号无效

0xa0108007

OT_ERR_VI_ILLEGAL_PARAM

视频输入参数设置无效

0xa010800a

OT_ERR_VI_NULL_PTR

输入参数空指针错误

0xa010800b

OT_ERR_VI_NOT_CFG

视频设备或通道属性未配置

0xa010800c

OT_ERR_VI_NOT_SUPPORT

操作不支持

0xa010800d

OT_ERR_VI_NOT_PERM

操作不允许

0xa0108010

OT_ERR_VI_NOT_ENABLE

视频输入设备或通道未启用

0xa0108011

OT_ERR_VI_NOT_DISABLE

视频输入设备或通道未禁用

0xa0108014

OT_ERR_VI_NO_MEM

分配内存失败

0xa0108016

OT_ERR_VI_BUF_EMPTY

视频输入缓存为空

0xa0108017

OT_ERR_VI_BUF_FULL

视频输入缓存为满

0xa0108018

OT_ERR_VI_NOT_READY

视频输入系统未初始化

0xa0108020

OT_ERR_VI_TIMEOUT

视频配置属性超时

0xa0108022

OT_ERR_VI_BUSY

视频输入系统忙

0xa0108024

OT_ERR_VI_NOT_BINDED

视频通道未绑定

0xa0108025

OT_ERR_VI_BINDED

视频通道已绑定