4.3. API参考

视频输入(VI)实现启用视频输入设备、视频输入 PIPE 创建,视频输入信道配置、 Dev 绑定 MIPI 设备,PIPE 绑定 Dev 等功能。

该功能模块提供以下API:


4.3.1. CVI_VI_SetDevAttr

【描述】

设置 VI 设备属性。基本设备属性默认了部分处理器配置。

【语法】

CVI_S32 CVI_VI_SetDevAttr(VI_DEV ViDev, const VI_DEV_ATTR_S *pstDevAttr);

【参数】

参数名称

描述

输入/输出

ViDev

VI 设备号。取值范围:[0, VI_MAX_DEV_NUM)。

输入

pstDevAttr

VI 设备属性指针。静态属性。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

  • 参数 pstDevAttr 主要用来配置指定 VI 设备的视频接口模式,用于与外围 camera、sensor 或 codec 对接,支持的接口模式包括 MIPI_RX(MIPI/LVDS/HISPI)。

  • 用户需要配置以下几类信息,具体属性意义参见“ 数据类型 ”部分的说明:

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

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

    • 数据布局信息:YUV数据输入下的数据排列

    • 数据信息:RGB、YUV 数据输入

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

【举例】

VI_DEV_ATTR_S DEV_ATTR_IMX327_2M_BASE = {
  VI_MODE_MIPI,
  VI_WORK_MODE_1Multiplex,
  VI_SCAN_PROGRESSIVE,
  {-1, -1, -1, -1},
  VI_DATA_SEQ_YUYV,

  {
  /*port_vsync   port_vsync_neg     port_hsync        port_hsync_neg        */
  VI_VSYNC_PULSE, VI_VSYNC_NEG_LOW, VI_HSYNC_VALID_SINGNAL, VI_HSYNC_NEG_HIGH,
  VI_VSYNC_VALID_SIGNAL, VI_VSYNC_VALID_NEG_HIGH,

  /*hsync_hfb    hsync_act    hsync_hhb*/
  {0,1920,        0,
  /*vsync0_vhb vsync0_act vsync0_hhb*/
  0,1080,        0,
  /*vsync1_vhb vsync1_act vsync1_hhb*/
  0,0,0}
  },
  VI_DATA_TYPE_RGB,
  {1920, 1080},
  {
    WDR_MODE_NONE,
    1080
  },
  .enBayerFormat = BAYER_FORMAT_RG,
};

int main(void)
{
  SAMPLE_SNS_TYPE_E  enSnsType   = SONY_IMX327_MIPI_2M_30FPS_12BIT;
  VI_DEV_ATTR_S      stViDevAttr;

  SAMPLE_COMM_VI_GetDevAttrBySns(enSnsType, &stViDevAttr);
  s32Ret = CVI_VI_SetDevAttr(0, &stViDevAttr);
  if (s32Ret != CVI_SUCCESS) {
    SAMPLE_PRT("CVI_VI_SetDevAttr failed with %#x\n", s32Ret);
    return s32Ret;
  }

  s32Ret = CVI_VI_EnableDev(0);
  if (s32Ret != CVI_SUCCESS) {
    SAMPLE_PRT("CVI_VI_EnableDev failed with %#x\n", s32Ret);
    return s32Ret;
  }

  CVI_VI_DisableDev(0);

  s32Ret = CVI_VI_StopPipe(ViPipe);
  if (s32Ret != CVI_SUCCESS) {
    SAMPLE_PRT("CVI_VI_StopPipe failed with %#x!\n", s32Ret);
    return s32Ret;
  }

  s32Ret = CVI_VI_DestroyPipe(ViPipe);
  if (s32Ret != CVI_SUCCESS) {
    SAMPLE_PRT("CVI_VI_DestroyPipe failed with %#x!\n", s32Ret);
    return s32Ret;
  }
}

【相关主题】

CVI_VI_GetDevAttr


4.3.2. CVI_VI_GetDevAttr

【描述】

获取 VI 设备属性。

【语法】

CVI_S32 CVI_VI_GetDevAttr(VI_DEV ViDev, VI_DEV_ATTR_S *pstDevAttr);

【参数】

参数名称

描述

输入/输出

ViDev

VI 设备号。取值范围:[0, VI_MAX_DEV_NUM)。

输入

pstDevAttr

VI 设备属性指针。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

【举例】

【相关主题】

CVI_VI_SetDevAttr


4.3.3. CVI_VI_SetDevAttrEx

【描述】

设置VI设备高级属性。

【语法】

CVI_S32 CVI_VI_SetDevAttrEx(VI_DEV ViDev, const VI_DEV_ATTR_EX_S *pstDevAttrEx);

【参数】

参数名称

描述

输入/输出

ViDev

VI 设备号。取值范围:[0, VI_MAX_DEV_NUM)。

输入

pstDevAttrEx

VI设备高级属性指针。静态属性。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 暂不支持此接口。

【举例】

【相关主题】


4.3.4. CVI_VI_GetDevAttrEx

【描述】

获取VI设备高级属性。

【语法】

CVI_S32 CVI_VI_GetDevAttrEx(VI_DEV ViDev, VI_DEV_ATTR_EX_S *pstDevAttrEx);

【参数】

参数名称

描述

输入/输出

ViDev

VI 设备号。取值范围:[0, VI_MAX_DEV_NUM)。

输入

pstDevAttrEx

VI设备高级属性指针。静态属性。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 暂不支持此接口。

【举例】

【相关主题】


4.3.5. CVI_VI_EnableDev

【描述】

启用 VI 设备。

【语法】

CVI_S32 CVI_VI_EnableDev(VI_DEV ViDev);

【参数】

参数名称

描述

输入/输出

ViDev

VI 设备号。取值范围:[0, VI_MAX_DEV_NUM)。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

  • CV181x支持同时启动三个VI DEV。

  • CV180x支持同时启动一个VI DEV。

【举例】

【相关主题】

CVI_VI_DisableDev


4.3.6. CVI_VI_DisableDev

【描述】

禁用 VI 设备。

【语法】

CVI_S32 CVI_VI_DisableDev(VI_DEV ViDev);

【参数】

参数名称

描述

输入/输出

ViDev

VI 设备号。取值范围:[0, VI_MAX_DEV_NUM)。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

  • 禁用 VI 设备后将完全关闭该设备,需要重新设置属性,才能使能VI 设备。

【举例】

【相关主题】

CVI_VI_EnableDev


4.3.7. CVI_VI_SetDevBindPipe

【描述】

设置 VI 设备与物理 PIPE 的绑定关系。

【语法】

CVI_S32 CVI_VI_SetDevBindPipe(VI_DEV ViDev, const VI_DEV_BIND_PIPE_S *pstDevBindPipe);

【参数】

参数名称

描述

输入/输出

ViDev

VI 设备号。取值范围:[0, VI_MAX_DEV_NUM)。

输入/输出

pstDevBindPipe

绑定到 Dev 的物理 PIPE 信息的结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

  • 此接口暂无使用。

【举例】

【相关主题】

CVI_VI_EnableDev


4.3.8. CVI_VI_GetDevBindPipe

【描述】

获取 VI 设备所绑定的物理 PIPE。

【语法】

CVI_S32 CVI_VI_GetDevBindPipe(VI_DEV ViDev, VI_DEV_BIND_PIPE_S *pstDevBindPipe);

【参数】

参数名称

描述

输入/输出

ViDev

VI 设备号。取值范围:[0, VI_MAX_DEV_NUM)。

输入/输出

pstDevBindPipe

绑定到 Dev 的物理 PIPE 信息的结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 使用本接口前,需使能设备并绑定物理 PIPE,否则返回失败。

  • 此接口暂无使用。

【举例】

【相关主题】

CVI_VI_SetDevBindPipe


4.3.9. CVI_VI_SetDevTimingAttr

【描述】

设置自产生时序属性。

【语法】

CVI_S32 CVI_VI_SetDevTimingAttr(VI_DEV ViDev, const VI_DEV_TIMING_ATTR_S *pstTimingAttr);

【参数】

参数名称

描述

输入/输出

ViDev

VI 设备号。取值范围:[0, VI_MAX_DEV_NUM)。

输入

pstTimingAttr

详见 VI_DEV_TIMING_ATTR_S 说明。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

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

  • 使能自产生时序后,若不灌 RAW,则无图像显示;灌 RAW 方式请参考 CVI_VI_SendPipeRaw 的描述。

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

【举例】

【相关主题】

CVI_VI_EnableDev

CVI_VI_SetDevAttr


4.3.10. CVI_VI_GetDevTimingAttr

【描述】

获取自产生时序属性。

【语法】

CVI_S32 CVI_VI_GetDevTimingAttr(VI_DEV ViDev, VI_DEV_TIMING_ATTR_S *pstTimingAttr);

【参数】

参数名称

描述

输入/输出

ViDev

VI 设备号。取值范围:[0, VI_MAX_DEV_NUM)。

输入

pstTimingAttr

详见 VI_DEV_TIMING_ATTR_S 说明。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

【举例】

【相关主题】

CVI_VI_EnableDev

CVI_VI_SetDevTimingAttr


4.3.11. CVI_VI_CreatePipe

【描述】

创建一个 VI PIPE。

【语法】

CVI_S32 CVI_VI_CreatePipe(VI_PIPE ViPipe, const VI_PIPE_ATTR_S *pstPipeAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。取值范围:[0, VI_MAX_PIPE_NUM)。

输入

pstPipeAttr

PIPE 的属性结构体指针。详见 VI_PIPE_ATTR_S 说明。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 不支持重复创建。

【举例】

【相关主题】

CVI_VI_EnableDev


4.3.12. CVI_VI_DestroyPipe

【描述】

销毁一个 VI PIPE。

【语法】

CVI_S32 CVI_VI_DestroyPipe(VI_PIPE ViPipe);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。取值范围:[0, VI_MAX_PIPE_NUM)。

输入

pstPipeAttr

PIPE 的属性结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 在未创建 PIPE 或重复销毁 PIPE 时,调用本接口,将提示 PIPE 不存在。

【举例】

【相关主题】

CVI_VI_CreatePipe


4.3.13. CVI_VI_SetPipeAttr

【描述】

设置 VI PIPE 的属性。

【语法】

CVI_S32 CVI_VI_SetPipeAttr(VI_PIPE ViPipe, const VI_PIPE_ATTR_S *pstPipeAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。取值范围:[0, VI_MAX_PIPE_NUM)。

输入

pstPipeAttr

PIPE 的属性结构体指针。详见 VI_PIPE_ATTR_S 说明

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 使用本接口前,需先调用 CVI_VI_CreatePipe,否则提示失败。

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

【举例】

【相关主题】


4.3.14. CVI_VI_GetPipeAttr

【描述】

获取 VI PIPE 的属性。

【语法】

CVI_S32 CVI_VI_GetPipeAttr(VI_PIPE ViPipe, VI_PIPE_ATTR_S *pstPipeAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。取值范围:[0, VI_MAX_PIPE_NUM)。

输入

pstPipeAttr

PIPE 的属性结构体指针。详见 VI_PIPE_ATTR_S 说明。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】

CVI_VI_SetPipeAttr


4.3.15. CVI_VI_StartPipe

【描述】

启用 VI PIPE。

【语法】

CVI_S32 CVI_VI_StartPipe(VI_PIPE ViPipe);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。取值范围:[0, VI_MAX_PIPE_NUM)。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】

CVI_VI_CreatePipe

4.3.16. CVI_VI_StopPipe

【描述】

禁用 VI PIPE。

【语法】

CVI_S32 CVI_VI_StopPipe(VI_PIPE ViPipe);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。取值范围:[0, VI_MAX_PIPE_NUM)。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 使用本接口前,Pipe必须已创建。

【举例】

【相关主题】

CVI_VI_CreatePipe


4.3.17. CVI_VI_SetPipeCrop

【描述】

设置 VI 物理 PIPE 裁剪功能属性。

【语法】

CVI_S32 CVI_VI_SetPipeCrop(VI_PIPE ViPipe, const CROP_INFO_S *pstCropInfo);

【参数】

参数名称

描述

输入/输出

ViPipe

VI 物理 PIPE 号。

输入

pstCropInfo

裁剪功能参数结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 使用本接口前,Pipe必须已创建。

  • 本接口与 CVI_VI_SetChnCrop 有同样效果。

【举例】

【相关主题】


4.3.18. CVI_VI_GetPipeCrop

【描述】

获取 VI 物理 PIPE 裁剪功能属性。

【语法】

CVI_S32 CVI_VI_GetPipeCrop(VI_PIPE ViPipe, CROP_INFO_S *pstCropInfo);

【参数】

参数名称

描述

输入/输出

ViPipe

VI 物理 PIPE 号。

输入

pstCropInfo

裁剪功能参数结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 使用本接口前,Pipe必须已创建。

【举例】

【相关主题】


4.3.19. CVI_VI_SetPipeDumpAttr

【描述】

设置 VI 物理 PIPE dump 属性。

【语法】

CVI_S32 CVI_VI_SetPipeDumpAttr(VI_PIPE ViPipe, const VI_DUMP_ATTR_S *pstDumpAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

物理 PIPE 号。取值范围:[0, VI_MAX_PHY_PIPE_NUM - 1)。

输入/输出

pstDumpAttr

VI 物理 PIPE dump 的属性。详见 VI_DUMP_ATTR_S 说明

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 支持Dump 12-bit非压缩/6-bit压缩的RAW数据。

  • 如果是YUV数据建议使用CVI_VI_GetChnFrame。

  • 暂不支持Dump IR数据。

【举例】

【相关主题】


4.3.20. CVI_VI_GetPipeDumpAttr

【描述】

获取 VI 物理 PIPE dump 属性。

【语法】

CVI_S32 CVI_VI_GetPipeDumpAttr(VI_PIPE ViPipe, VI_DUMP_ATTR_S *pstDumpAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

物理 PIPE 号。取值范围:[0, VI_MAX_PHY_PIPE_NUM - 1)。

输入

pstDumpAttr

VI 物理 PIPE dump 的属性。 详见 VI_DUMP_ATTR_S 说明。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • PIPE 必须已创建。

【举例】

【相关主题】

CVI_VI_SetPipeDumpAttr


4.3.21. CVI_VI_SetPipeFrameSource

【描述】

设置 VI PIPE 数据的来源。

【语法】

CVI_S32 CVI_VI_SetPipeFrameSource(VI_PIPE ViPipe, const VI_PIPE_FRAME_SOURCE_E enSource);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。取值范围:[0, VI_MAX_PIPE_NUM)。

输入

enSource

PIPE 的数据来源。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • PIPE 必须已创建。

【举例】

【相关主题】


4.3.22. CVI_VI_GetPipeFrameSource

【描述】

获取 VI PIPE 数据的来源。

【语法】

CVI_S32 CVI_VI_GetPipeFrameSource(VI_PIPE ViPipe, VI_PIPE_FRAME_SOURCE_E *penSource);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。取值范围:[0, VI_MAX_PIPE_NUM)。

输入

penSource

PIPE 的数据来源。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • PIPE 必须已创建。

【举例】

【相关主题】


4.3.23. CVI_VI_GetPipeFrame

【描述】

获取 VI 物理 PIPE 的数据。

【语法】

CVI_S32 CVI_VI_GetPipeFrame(VI_PIPE ViPipe, VIDEO_FRAME_INFO_S *pstVideoFrame, CVI_S32 s32MilliSec);

【参数】

参数名称

描述

输入/输出

ViPipe

物理 PIPE 号。取值范围:[0, VI_MAX_PHY_PIPE_NUM - 1)。

输入

pstVideoFrame

VI PIPE 数据信息的指针。

输出

s32MilliSec

超时参数,超时时间的单位为毫秒(ms)。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • PIPE 必须已创建。

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

  • 超时参数 s32MilliSec,设置范围最小为0。

【举例】

【相关主题】

CVI_VI_SetPipeDumpAttr


4.3.24. CVI_VI_ReleasePipeFrame

【描述】

释放 VI PIPE 的数据。

【语法】

CVI_S32 CVI_VI_ReleasePipeFrame(VI_PIPE ViPipe, const VIDEO_FRAME_INFO_S *pstVideoFrame);

【参数】

参数名称

描述

输入/输出

ViPipe

物理 PIPE 号。取值范围:[0, VI_MAX_PHY_PIPE_NUM - 1)。

输入

pstVideoFrame

VI PIPE 数据信息的指针。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 本接口需与 CVI_VI_GetPipeFrame 匹配使用,GetPipeFrame后不Release会导致系统内存不足,进而影响VI运作。

  • 用户必须保证 pstVideoFrame 结构中的信息与GetPipeFrame时一致,否则会造成释放不成功。

【举例】

【相关主题】

CVI_VI_GetPipeFrame


4.3.25. CVI_VI_SendPipeRaw

【描述】

通过 VI PIPE 发送 RAW 数据。

【语法】

CVI_S32 CVI_VI_SendPipeRaw(CVI_U32 u32PipeNum, VI_PIPE PipeId[], const VIDEO_FRAME_INFO_S *pstVideoFrame[], CVI_S32 s32MilliSec);

【参数】

参数名称

描述

输入/输出

u32PipeNum

Pipe 数目,固定填1值。

输入

PipeId

PIPE 号数组,个数为 u32PipeNum。

输入/输出

pstVideoFrame

RAW 数据信息。

输入

s32MilliSec

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

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • PIPE 必须已创建且启动。

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

  • 支持用户自定义时序灌 RAW。

  • 只支持送非压模式 RAW 数据。

【举例】

【相关主题】

CVI_VI_SetPipeFrameSource


4.3.26. CVI_VI_QueryPipeStatus

【描述】

查询 VI PIPE 状态。

【语法】

CVI_S32 CVI_VI_QueryPipeStatus(VI_PIPE ViPipe, VI_PIPE_STATUS_S *pstStatus);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

pstStatus

PIPE 状态信息。

输入/输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • PIPE 必须已创建且启动。

【举例】

【相关主题】


4.3.27. CVI_VI_GetPipeFd

【描述】

获取 VI PIPE 文件描述符。

【语法】

CVI_S32 CVI_VI_GetPipeFd(VI_PIPE ViPipe);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • PIPE 必须已创建且启动。

  • DUAL_OS不可用。

【举例】

【相关主题】


4.3.28. CVI_VI_CloseFd

【描述】

关闭 VI 文件描述符。

【语法】

CVI_S32 CVI_VI_CloseFd(void);

【参数】

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 暂不支持此接口。

【举例】

【相关主题】


4.3.29. CVI_VI_AttachVbPool

【描述】

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

【语法】

CVI_S32 CVI_VI_AttachVbPool(VI_PIPE ViPipe, VI_CHN ViChn, VB_POOL VbPool);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViChn

VI 通道号。

输入

VbPool

视频缓存VB 池信息。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h,cvi_comm_vb.h

  • 库文件:libvi.a

【注意】

  • ViPipe、ViChn必须符合取值范围。

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

  • DUAL_OS不可用。

【举例】

【相关主题】


4.3.30. CVI_VI_DetachVbPool

【描述】

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

【语法】

CVI_S32 CVI_VI_DetachVbPool(VI_PIPE ViPipe, VI_CHN ViChn);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViChn

VI 通道号。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h

  • 库文件:libvi.a

【注意】

  • ViPipe、ViChn必须符合取值范围。

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

  • 需先调用Attahc获取。

  • DUAL_OS不可用。

【举例】

【相关主题】


4.3.31. CVI_VI_SetChnAttr

【描述】

设置 VI 通道属性。

【语法】

CVI_S32 CVI_VI_SetChnAttr(VI_PIPE ViPipe, VI_CHN ViChn, const VI_CHN_ATTR_S *pstChnAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViChn

VI 通道号。

输入

pstChnAttr

VI 通道属性结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 目标图像大小 stSize: 必须配置,且大小需要在 VI 支持的范围内。

  • 像素格式 enPixelFormat:输出像素格式支持 NV21。

  • 帧率控制 stFrameRate:不支持帧率控制。

【举例】

【相关主题】


4.3.32. CVI_VI_GetChnAttr

【描述】

获取 VI 通道属性。

【语法】

CVI_S32 CVI_VI_GetChnAttr(VI_PIPE ViPipe, VI_CHN ViChn, VI_CHN_ATTR_S *pstChnAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViChn

VI 通道号。

输入

pstChnAttr

VI 通道属性结构体指针。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

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

【举例】

【相关主题】


4.3.33. CVI_VI_EnableChn

【描述】

启用 VI 通道。

【语法】

CVI_S32 CVI_VI_EnableChn(VI_PIPE ViPipe, VI_CHN ViChn);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViChn

VI 通道号。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

  • 必须先设置通道属性。

  • 不支持重复启用 VI 通道。

【举例】

【相关主题】


4.3.34. CVI_VI_DisableChn

【描述】

禁用 VI 通道。

【语法】

CVI_S32 CVI_VI_DisableChn(VI_PIPE ViPipe, VI_CHN ViChn);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViChn

VI 通道号。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

  • 必须先设置通道属性。

  • VI 通道须要先使能。

【举例】

【相关主题】


4.3.35. CVI_VI_SetChnCrop

【描述】

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

【语法】

CVI_S32 CVI_VI_SetChnCrop(VI_PIPE ViPipe, VI_CHN ViChn, const VI_CROP_INFO_S *pstCropInfo);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViChn

VI 通道号。

输入

pstCropInfo

裁剪功能参数结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

  • 使用此API进行Crop,会让部分画面丧失。

  • 使用此API进行Crop后,VPSS的输入size必须和pstCropInfo的size一样。

【举例】

【相关主题】


4.3.36. CVI_VI_GetChnCrop

【描述】

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

【语法】

CVI_S32 CVI_VI_GetChnCrop(VI_PIPE ViPipe, VI_CHN ViChn, VI_CROP_INFO_S *pstCropInfo);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViChn

VI 通道号。

输入

pstCropInfo

裁剪功能参数结构体指针

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

  • 必须先使用SetChnCrop设置属性,才能获得属性。

【举例】

【相关主题】


4.3.37. CVI_VI_GetChnFrame

【描述】

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

【语法】

CVI_S32 CVI_VI_GetChnFrame(VI_PIPE ViPipe, VI_CHN ViChn, VIDEO_FRAME_INFO_S *pstFrameInfo, CVI_S32 s32MilliSec);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViChn

VI 通道号。

输入

pstFrameInfo

VI 帧信息结构指针。

输出

s32MilliSec

超时参数,-1 表示阻塞模式;0 表示非阻塞模式;大于 0 表示超时模式,超时时间的单位为毫秒(ms)。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

  • 必须先设置通道属性。

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

  • pstFrameInfo->stVFrame.u64PhyAddr[0] 和 pstFrameInfo->stVFrame.u64PhyAddr[1]/[2] 分别指向图像的亮度分量和色度分量的物理地址。

  • 如果 u32MilliSec 设为 -1 时,表示阻塞模式,程序一直等待,直到获取到图像才返回。

  • 如果 u32MilliSec 大于 0 时,表示非阻塞模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。

【举例】

【相关主题】


4.3.38. CVI_VI_ReleaseChnFrame

【描述】

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

【语法】

CVI_S32 CVI_VI_ReleaseChnFrame(VI_PIPE ViPipe, VI_CHN ViChn, const VIDEO_FRAME_INFO_S *pstFrameInfo);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViChn

VI 通道号。

输入

pstFrameInfo

VI 帧信息结构指针。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

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

  • 必须先设置通道属性。

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

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

【举例】

【相关主题】


4.3.39. CVI_VI_SetChnRotation

【描述】

设置 VI 通道旋转的属性。

【语法】

CVI_S32 CVI_VI_SetChnRotation(VI_PIPE ViPipe, VI_CHN ViChn, const ROTATION_E enRotation);

【参数】

参数名称

描述

输入/输出

ViPipe

VI物理 PIPE 号。取值范围:[0, VI_MAX_PHY_PIPE_NUM - 1)。

输入

ViChn

VI物理通道号。取值范围:[0, VI_MAX_PHY_CHN_NUM - 1)。

输入

enRotation

旋转属性。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 使用本接口前,需先调用 CVI_VI_CreatePipe,否则提示失败。

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

  • 仅支持YUV420 Planar及YUV400两种格式的旋转。

  • 旋转后通道输出的图像内存大小可能发生变化,但从通道所获取的尺寸仍为原本用户设置值。例如1920x1080输入的图像,旋转90度后,实际输出为1080x1920。

  • VI_ONLINE_VPSS_ONLINE/ VI_OFFLINE_VPSS_ONLINE下不支援。

【举例】

【相关主题】


4.3.40. CVI_VI_GetChnRotation

【描述】

获取 VI 通道旋转的属性。

【语法】

CVI_S32 CVI_VI_GetChnRotation(VI_PIPE ViPipe, VI_CHN ViChn, ROTATION_E *penRotation);

【参数】

参数名称

描述

输入/输出

ViPipe

VI物理 PIPE 号。取值范围:[0, VI_MAX_PHY_PIPE_NUM - 1)。

输入

ViChn

VI物理通道号。取值范围:[0, VI_MAX_PHY_CHN_NUM - 1)。

输入

penRotation

旋转属性指针。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 使用本接口前,需先调用 CVI_VI_CreatePipe (ViPipe),否则提示失败。

  • VI_ONLINE_VPSS_ONLINE/ VI_OFFLINE_VPSS_ONLINE下不支援。

【举例】

【相关主题】

CVI_VI_SetChnRotation


4.3.41. CVI_VI_SetChnLDCAttr

【描述】

设置 VI 通道镜头畸变矫正的属性。

【语法】

CVI_S32 CVI_VI_SetChnLDCAttr(VI_PIPE ViPipe, VI_CHN ViChn, const VI_LDC_ATTR_S *pstLDCAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI物理 PIPE 号。取值范围:[0, VI_MAX_PHY_PIPE_NUM - 1)。

输入

ViChn

VI物理通道号。取值范围:[0, VI_MAX_PHY_CHN_NUM - 1)。

输入

pstLDCAttr

镜头畸变矫正属性。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 使用本接口前,需先调用 CVI_VI_CreatePipe,否则提示失败。

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

  • VI_ONLINE_VPSS_ONLINE/ VI_OFFLINE_VPSS_ONLINE下不支援。

【举例】

【相关主题】

CVI_VI_GetChnLDCAttr

VI_LDC_ATTR_S


4.3.42. CVI_VI_GetChnLDCAttr

【描述】

获取 VI 通道镜头畸变矫正的属性。

【语法】

CVI_S32 CVI_VI_GetChnLDCAttr(VI_PIPE ViPipe, VI_CHN ViChn, const VI_LDC_ATTR_S *pstLDCAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI物理 PIPE 号。取值范围:[0, VI_MAX_PHY_PIPE_NUM - 1)。

输入

ViChn

VI物理通道号。取值范围:[0, VI_MAX_PHY_CHN_NUM - 1)。

输入

pstLDCAttr

镜头畸变矫正属性。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 使用本接口前,需先调用 CVI_VI_CreatePipe,否则提示失败。

  • VI_ONLINE_VPSS_ONLINE/ VI_OFFLINE_VPSS_ONLINE下不支援。

【举例】

【相关主题】

CVI_VI_SetChnLDCAttr

VI_LDC_ATTR_S


4.3.43. CVI_VI_RegChnFlipMirrorCallBack

【描述】

注册 VI 通道翻转镜像回调函数。

【语法】

CVI_S32 CVI_VI_RegChnFlipMirrorCallBack(VI_PIPE ViPipe, VI_DEV ViDev, void *pvData);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViDev

VI 设备号。

输入

pvData

回调函数指针。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】


4.3.44. CVI_VI_UnRegChnFlipMirrorCallBack

【描述】

注销 VI 通道翻转镜像回调函数。

【语法】

CVI_S32 CVI_VI_UnRegChnFlipMirrorCallBack(VI_PIPE ViPipe, VI_DEV ViDev);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViDev

VI 设备号。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】


4.3.45. CVI_VI_SetChnFlipMirror

【描述】

设置 VI 通道翻转镜像的属性。

【语法】

CVI_S32 CVI_VI_SetChnFlipMirror(VI_PIPE ViPipe, VI_CHN ViChn, CVI_BOOL bFlip, CVI_BOOL bMirror);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViChn

VI 通道号。

输入

bFlip

翻转使能开关。

输入

bMirror

镜像使能开关。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 使用前需先调用 CVI_VI_RegChnFlipMirrorCallBack 注册回调函数,否则提示失败。

【举例】

【相关主题】


4.3.46. CVI_VI_GetChnFlipMirror

【描述】

获取 VI 通道翻转镜像的属性。

【语法】

CVI_S32 CVI_VI_GetChnFlipMirror(VI_PIPE ViPipe, VI_CHN ViChn, CVI_BOOL *pbFlip, CVI_BOOL *pbMirror);

【参数】

参数名称

描述

输入/输出

ViPipe

PIPE 号。

输入

ViChn

VI 通道号。

输入

pbFlip

翻转属性。

输出

pbMirror

镜像属性。

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】


4.3.47. CVI_VI_Suspend

【描述】

休眠 VI 设备。

【语法】

CVI_S32 CVI_VI_Suspend(void);

【参数】

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h

  • 库文件:libvi.a

【注意】

  • 需在初始化VI模块之后调用

【举例】

【相关主题】

CVI_VI_Resume


4.3.48. CVI_VI_Resume

【描述】

唤醒 VI 设备。

【语法】

CVI_S32 CVI_VI_Resume(void);

【参数】

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h

  • 库文件:libvi.a

【注意】

  • 需在VI模块进行suspend之后使用

【举例】

【相关主题】

CVI_VI_Suspend


4.3.49. CVI_VI_SetDevNum

【描述】

设置 VI 设备数量。

【语法】

CVI_S32 CVI_VI_SetDevNum(CVI_U32 devNum);

【参数】

参数名称

描述

输入/输出

devNum

VI 设备数量。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】

CVI_VI_GetDevNum


4.3.50. CVI_VI_GetDevNum

【描述】

获取 VI 设备数量。

【语法】

CVI_S32 CVI_VI_GetDevNum(CVI_U32 devNum);

【参数】

参数名称

描述

输入/输出

devNum

VI 设备数量。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】

CVI_VI_SetDevNum


4.3.51. CVI_VI_EnablePatt

【描述】

启用 VI pattern模式。

【语法】

CVI_S32 CVI_VI_EnablePatt(VI_PIPE ViPipe);

【参数】

参数名称

描述

输入/输出

ViPipe

Pipe 号。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h

  • 库文件:libvi.a

【注意】

  • 仅DUAL_OS支持

【举例】

【相关主题】


4.3.52. CVI_VI_StartSmoothRawDump

【描述】

开始dump平滑raw图。

【语法】

CVI_S32 CVI_VI_StartSmoothRawDump(const VI_SMOOTH_RAW_DUMP_INFO_S *pstDumpInfo);

【参数】

参数名称

描述

输入/输出

pstDumpInfo

vi dump平滑raw图信息结构体指针

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】

CVI_VI_StopSmoothRawDump


4.3.53. CVI_VI_StopSmoothRawDump

【描述】

停止dump平滑raw图。

【语法】

CVI_S32 CVI_VI_StopSmoothRawDump(const VI_SMOOTH_RAW_DUMP_INFO_S *pstDumpInfo);

【参数】

参数名称

描述

输入/输出

pstDumpInfo

vi dump平滑raw图信息结构体指针

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】

CVI_VI_StartSmoothRawDump


4.3.54. CVI_VI_GetSmoothRawDump

【描述】

获取dump下来的平滑raw图。

【语法】

CVI_S32 CVI_VI_GetSmoothRawDump(VI_PIPE ViPipe, VIDEO_FRAME_INFO_S *pstVideoFrame, CVI_S32 s32MilliSec);

【参数】

参数名称

描述

输入/输出

ViPipe

pipe号

输入

pstVideoFrame

raw数据信息

输出

s32MilliSec

超时参数,-1 表示阻塞模式;0 表示非阻塞模式;大于 0 表示超时模式,超时时间的单位为毫秒(ms)。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】


4.3.55. CVI_VI_PutSmoothRawDump

【描述】

放置dump下来的平滑raw图。

【语法】

CVI_S32 CVI_VI_PutSmoothRawDump(VI_PIPE ViPipe, const VIDEO_FRAME_INFO_S *pstVideoFrame);

【参数】

参数名称

描述

输入/输出

ViPipe

pipe号

输入

pstVideoFrame

raw数据信息

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】


4.3.56. CVI_VI_GetRgbMapLeBuf

【描述】

获取rgbmap长帧缓冲区。

【语法】

CVI_S32 CVI_VI_GetRgbMapLeBuf(VI_PIPE ViPipe, void *pstRgbMapBuf);

【参数】

参数名称

描述

输入/输出

ViPipe

pipe号

输入

pstRgbMapBuf

rgbmap缓冲区指针

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

仅DUAL OS支持

【举例】

【相关主题】


4.3.57. CVI_VI_GetRgbMapSeBuf

【描述】

获取rgbmap短帧缓冲区。

【语法】

CVI_S32 CVI_VI_GetRgbMapSeBuf(VI_PIPE ViPipe, void *pstRgbMapBuf);

【参数】

参数名称

描述

输入/输出

ViPipe

pipe号

输入

pstRgbMapBuf

rgbmap缓冲区指针

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

仅DUAL OS支持

【举例】

【相关主题】


4.3.58. CVI_VI_DumpHwRegisterToFile

【描述】

下载硬件寄存器数据到指定文件。

【语法】

CVI_S32 CVI_VI_DumpHwRegisterToFile(VI_PIPE ViPipe, FILE *fp, VI_DUMP_REGISTER_TABLE_S *pstRegTbl);

【参数】

参数名称

描述

输入/输出

ViPipe

pipe号

输入

fp

文件描述符

输入

pstRegTbl

硬件寄存器数据指针

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】


4.3.59. CVI_VI_QueryChnStatus

【描述】

查看 VI 通道状态。

【语法】

CVI_S32 CVI_VI_QueryChnStatus(VI_PIPE ViPipe, VI_CHN ViChn, VI_CHN_STATUS_S *pstChnStatus);

【参数】

参数名称

描述

输入/输出

ViPipe

pipe号

输入

ViChn

VI通道号

输入

pstChnStatus

VI 设备通道状态结构体指针

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】


4.3.60. CVI_VI_GetChnFd

【描述】

获取 VI 通道描述符。

【语法】

S32 CVI_VI_GetChnFd(VI_PIPE ViPipe, VI_CHN ViChn);

【参数】

参数名称

描述

输入/输出

ViPipe

pipe号

输入

ViChn

VI通道号

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

仅DUAL OS支持

【举例】

【相关主题】


4.3.61. CVI_VI_SetChnAlign

【描述】

设置 VI 通道对齐数。

【语法】

CVI_S32 CVI_VI_SetChnAlign(VI_PIPE ViPipe, VI_CHN ViChn, CVI_U32 u32Align);

【参数】

参数名称

描述

输入/输出

ViPipe

pipe号

输入

ViChn

VI通道号

输入

u32Align

VI 通道对齐数

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

仅DUAL OS支持

【举例】

【相关主题】

CVI_VI_GetChnAlign


4.3.62. CVI_VI_GetChnAlign

【描述】

获取 VI 通道对齐数。

【语法】

CVI_S32 CVI_VI_GetChnAlign(VI_PIPE ViPipe, VI_CHN ViChn, CVI_U32 *pu32Align);

【参数】

参数名称

描述

输入/输出

ViPipe

pipe号

输入

ViChn

VI通道号

输入

pu32Align

VI 通道对齐数指针

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

仅DUAL OS支持

【举例】

【相关主题】

CVI_VI_SetChnAlign


4.3.63. CVI_VI_RegPmCallBack

【描述】

注册 VI 设备电源管理回调函数。

【语法】

CVI_S32 CVI_VI_RegPmCallBack(VI_DEV ViDev, VI_PM_OPS_S *pstPmOps, void *pvData);

【参数】

参数名称

描述

输入/输出

ViDev

VI 设备号

输入

pstPmOps

VI 设备电源管理操作结构体指针

输入

pvData

用户私有数据指针

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】

CVI_VI_UnRegPmCallBack


4.3.64. CVI_VI_UnRegPmCallBack

【描述】

注销 VI 设备电源管理回调函数。

【语法】

CVI_S32 CVI_VI_UnRegPmCallBack(VI_DEV ViDev);

【参数】

参数名称

描述

输入/输出

ViDev

VI 设备号

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】

CVI_VI_RegPmCallBack


4.3.65. CVI_VI_SetTuningDis

【描述】

设置tuning参数。

【语法】

CVI_S32 CVI_VI_SetTuningDis(CVI_S32 ctrl, CVI_S32 fe, CVI_S32 be, CVI_S32 post);

【参数】

参数名称

描述

输入/输出

ctrl

控制通道参数

输入

fe

fe控制参数

输入be

be

be控制参数

输入

post

post控制参数

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

仅DUAL OS支持

【举例】

【相关主题】


4.3.66. CVI_VI_QueryDevStatus

【描述】

获取 VI 设备状态。

【语法】

CVI_S32 CVI_VI_QueryDevStatus(VI_PIPE ViPipe);

【参数】

参数名称

描述

输入/输出

ViPipe

pipe号

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

【举例】

【相关主题】


4.3.67. CVI_VI_Trig_AHD

【描述】

设置AHD触发器。

【语法】

CVI_S32 CVI_VI_Trig_AHD(VI_PIPE ViPipe, CVI_U8 u8AHDSignal);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。取值范围:[0, VI_MAX_PIPE_NUM)。

输入

u8AHDSignal

AHD开启标志。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 使用此接口需要使用AHD热插拔sensor,正常使用无需调用此接口。

  • DUAL_OS暂无法使用。

【举例】

【相关主题】


4.3.68. CVI_VI_SetExtChnAttr

【描述】

设置扩展通道属性。

【语法】

CVI_S32 CVI_VI_SetExtChnAttr(VI_PIPE ViPipe, VI_CHN ViChn, const VI_EXT_CHN_ATTR_S *pstExtChnAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。取值范围:[0, VI_MAX_PIPE_NUM)。

输入

ViChn

VI 通道号。

输入

pstExtChnAttr

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

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 此接口暂无使用。

【举例】

【相关主题】

CVI_VI_GetExtChnAttr


4.3.69. CVI_VI_GetExtChnAttr

【描述】

获取扩展通道属性。

【语法】

CVI_S32 CVI_VI_GetExtChnAttr(VI_PIPE ViPipe, VI_CHN ViChn, VI_EXT_CHN_ATTR_S *pstExtChnAttr);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。取值范围:[0, VI_MAX_PIPE_NUM)。

输入

ViChn

VI 通道号。

输入

pstExtChnAttr

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

输出

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 此接口暂无使用。

【举例】

【相关主题】

CVI_VI_SetExtChnAttr


4.3.70. CVI_VI_SINGEL_FRAME_ENABLE

【描述】

设置VI进行单帧模式,每次只收一帧。

【语法】

CVI_S32 CVI_VI_SINGEL_FRAME_ENABLE(bool flag);

【参数】

参数名称

描述

输入/输出

flag

判断标志。取值1,0。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 使用本接口前,需先调用 CVI_VI_CreatePipe,否则提示失败。

  • 本接口需要配合休眠唤醒接口使用,单独使用无使用场景。

【举例】

【相关主题】


4.3.71. CVI_VI_SetMipiBindDev

【描述】

设置VI_dev和MIPI_dev绑定。

【语法】

CVI_S32 CVI_VI_SetMipiBindDev(VI_DEV ViDev, MIPI_DEV MipiDev);

【参数】

参数名称

描述

输入/输出

ViDev

VI设备号。

输入

MipiDev

MIPI设备号。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 此接口暂无使用。

【举例】

【相关主题】

CVI_VI_GetMipiBindDev


4.3.72. CVI_VI_GetMipiBindDev

【描述】

获取VI_dev和哪一个MIPI_dev绑定。

【语法】

CVI_S32 CVI_VI_GetMipiBindDev(VI_DEV ViDev, MIPI_DEV *pMipiDev);

【参数】

参数名称

描述

输入/输出

ViDev

VI设备号。

输入

MipiDev

MIPI设备号指针。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 此接口暂无使用。

【举例】

【相关主题】

CVI_VI_SetMipiBindDev


4.3.73. CVI_VI_SetChnEarlyInterrupt

【描述】

设定某一通道的中断。

【语法】

CVI_S32 CVI_VI_SetChnEarlyInterrupt(VI_PIPE ViPipe, VI_CHN ViChn, const VI_EARLY_INTERRUPT_S *pstEarlyInterrupt);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。

输入

ViChn

VI通道号。

输入

pstEarlyInterrupt

早期中断结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 此接口暂无使用。

【举例】

【相关主题】

CVI_VI_GetChnEarlyInterrupt


4.3.74. CVI_VI_GetChnEarlyInterrupt

【描述】

获取某一通道的中断。

【语法】

CVI_S32 CVI_VI_GetChnEarlyInterrupt(VI_PIPE ViPipe, VI_CHN ViChn, const VI_EARLY_INTERRUPT_S *pstEarlyInterrupt);

【参数】

参数名称

描述

输入/输出

ViPipe

VI PIPE号。

输入

ViChn

VI通道号

输入

pstEarlyInterrupt

早期中断结构体指针。

输入

【返回值】

返回值

描述

0

成功。

非 0

失败,请参见 错误码

【需求】

  • 头文件:cvi_vi.h, cvi_comm_vi.h

  • 库文件:libvi.a

【注意】

  • 此接口暂无使用。

【举例】

【相关主题】

CVI_VI_SetChnEarlyInterrupt