4.3. API参考¶
视频输入(VI)实现启用视频输入设备、视频输入 PIPE 创建,视频输入信道配置、 Dev 绑定 MIPI 设备,PIPE 绑定 Dev 等功能。
该功能模块提供以下API:
CVI_VI_SetDevAttr :设置 VI 设备属性。
CVI_VI_GetDevAttr :获取 VI 设备属性。
CVI_VI_SetDevAttrEx :设置 VI 设备高级属性。
CVI_VI_GetDevAttrEx :获取 VI 设备高级属性。
CVI_VI_EnableDev :启用 VI 设备。
CVI_VI_DisableDev :禁用 VI 设备。
CVI_VI_SetDevBindPipe :设置 VI 设备与物理 PIPE 的绑定关系。
CVI_VI_GetDevBindPipe :获取 VI 设备所绑定的物理 PIPE。
CVI_VI_SetDevTimingAttr :设置自产生时序属性。
CVI_VI_GetDevTimingAttr :获取自产生时序属性。
CVI_VI_CreatePipe :创建一个 VI PIPE。
CVI_VI_DestroyPipe :销毁一个 VI PIPE。
CVI_VI_SetPipeAttr :设置 VI PIPE 的属性。
CVI_VI_GetPipeAttr :获取 VI PIPE 的属性。
CVI_VI_StartPipe :启用 VI PIPE。
CVI_VI_StopPipe :禁用 VI PIPE。
CVI_VI_SetPipeCrop :设置 VI 物理 PIPE 裁剪功能属性。
CVI_VI_GetPipeCrop :获取 VI 物理 PIPE 裁剪功能属性。
CVI_VI_SetPipeDumpAttr :设置 VI 物理 PIPE dump 属性。
CVI_VI_GetPipeDumpAttr :获取 VI 物理 PIPE dump 属性。
CVI_VI_SetPipeFrameSource :设置 VI PIPE 数据的来源。
CVI_VI_GetPipeFrameSource :获取 VI PIPE 数据的来源。
CVI_VI_GetPipeFrame :获取 VI 物理 PIPE 的数据。
CVI_VI_ReleasePipeFrame :释放 VI PIPE 的数据。
CVI_VI_SendPipeRaw :通过 VI PIPE 发送 RAW 数据。
CVI_VI_QueryPipeStatus :查看 VI PIPE 状态。
CVI_VI_GetPipeFd :获取 VI PIPE 文件描述符。
CVI_VI_CloseFd :关闭 VI 文件描述符。
CVI_VI_AttachVbPool :将 VI 通道绑定到某个视频缓存VB池中。
CVI_VI_DetachVbPool : 将 VI 通道从某个视频缓存VB池中解绑定。
CVI_VI_SetChnAttr :设置 VI 通道属性。
CVI_VI_GetChnAttr :获取 VI 通道属性。
CVI_VI_EnableChn :启用 VI 通道。
CVI_VI_DisableChn :禁用 VI 通道。
CVI_VI_SetChnCrop :设置 VI 信道裁剪功能属性。
CVI_VI_GetChnCrop :获取 VI 信道裁剪功能属性。
CVI_VI_GetChnFrame :从 VI 通道获取采集的图像。
CVI_VI_ReleaseChnFrame :释放一帧从 VI 通道获取的图像。
CVI_VI_SetChnRotation :设置 VI 通道旋转的属性。
CVI_VI_GetChnRotation :获取 VI 通道旋转的属性。
CVI_VI_RegChnFlipMirrorCallBack :注册 VI 通道翻转镜像回调函数。
CVI_VI_UnRegChnFlipMirrorCallBack :注销 VI 通道翻转镜像回调函数。
CVI_VI_SetChnFlipMirror :设置 VI 通道翻转镜像的属性。
CVI_VI_GetChnFlipMirror :获取 VI 通道翻转镜像的属性。
CVI_VI_Suspend: 休眠 VI 设备。
CVI_VI_Resume: 唤醒 VI 设备。
CVI_VI_SetDevNum: 设置 VI 设备数量。
CVI_VI_GetDevNum: 获取 VI 设备数量。
CVI_VI_EnablePatt: 启用 VI pattern模式。
CVI_VI_StartSmoothRawDump: 开始dump平滑raw图。
CVI_VI_StopSmoothRawDump: 停止dump平滑raw图。
CVI_VI_GetSmoothRawDump: 获取dump下来的平滑raw图。
CVI_VI_PutSmoothRawDump: 放置dump下来的平滑raw图。
CVI_VI_GetRgbMapLeBuf: 获取rgbmap长帧缓冲区。
CVI_VI_GetRgbMapSeBuf: 获取rgbmap短帧缓冲区。
CVI_VI_DumpHwRegisterToFile: 下载硬件寄存器数据到指定文件。
CVI_VI_QueryChnStatus: 查看 VI 通道状态。
CVI_VI_GetChnFd: 获取 VI 通道描述符。
CVI_VI_SetChnAlign: 设置 VI 通道对齐数。
CVI_VI_GetChnAlign: 获取 VI 通道对齐数。
CVI_VI_RegPmCallBack: 注册 VI 设备电源管理回调函数。
CVI_VI_UnRegPmCallBack: 注销 VI 设备电源管理回调函数。
CVI_VI_SetTuningDis: 设置tuning参数。
CVI_VI_QueryDevStatus: 获取 VI 设备状态。
CVI_VI_Trig_AHD: 设置AHD触发器。
CVI_VI_SetExtChnAttr :设置 VI 通道扩展属性。
CVI_VI_GetExtChnAttr :获取 VI 通道扩展属性。
CVI_VI_SINGEL_FRAME_ENABLE :设置VI单帧模式。
CVI_VI_SetMipiBindDev :设置MIPI与VI_dev的绑定模式。
CVI_VI_GetMipiBindDev :获取MIPI与VI_dev的绑定模式。
CVI_VI_SetChnEarlyInterrupt :设置VI某一通道终端设置。
CVI_VI_GetChnEarlyInterrupt :获取VI某一通道终端设置。
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;
}
}
【相关主题】
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 设备属性,该接口将返回失败。
【举例】
无
【相关主题】
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。
【举例】
无
【相关主题】
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 设备。
【举例】
无
【相关主题】
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。
此接口暂无使用。
【举例】
无
【相关主题】
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,否则返回失败。
此接口暂无使用。
【举例】
无
【相关主题】
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 输出帧率由配置自产生时序产生的有效帧率决定。
【举例】
无
【相关主题】
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,并使能设备,否则返回失败。
【举例】
无
【相关主题】
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
【注意】
不支持重复创建。
【举例】
无
【相关主题】
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 不存在。
【举例】
无
【相关主题】
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必须已创建。
【举例】
无
【相关主题】
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 必须已创建。
【举例】
无
【相关主题】
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。
【举例】
无
【相关主题】
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时一致,否则会造成释放不成功。
【举例】
无
【相关主题】
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 数据。
【举例】
无
【相关主题】
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下不支援。
【举例】
无
【相关主题】
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下不支援。
【举例】
无
【相关主题】
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下不支援。
【举例】
无
【相关主题】
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模块之后调用
【举例】
无
【相关主题】
4.3.48. CVI_VI_Resume¶
【描述】
唤醒 VI 设备。
【语法】
CVI_S32 CVI_VI_Resume(void);
【参数】
无
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vi.h
库文件:libvi.a
【注意】
需在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
【注意】
无
【举例】
无
【相关主题】
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
【注意】
无
【举例】
无
【相关主题】
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
【注意】
无
【举例】
无
【相关主题】
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
【注意】
无
【举例】
无
【相关主题】
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支持
【举例】
无
【相关主题】
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支持
【举例】
无
【相关主题】
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
【注意】
无
【举例】
无
【相关主题】
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
【注意】
无
【举例】
无
【相关主题】
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
【注意】
此接口暂无使用。
【举例】
无
【相关主题】
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
【注意】
此接口暂无使用。
【举例】
无
【相关主题】
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
【注意】
此接口暂无使用。
【举例】
无
【相关主题】
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
【注意】
此接口暂无使用。
【举例】
无
【相关主题】
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
【注意】
此接口暂无使用。
【举例】
无
【相关主题】
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
【注意】
此接口暂无使用。
【举例】
无
【相关主题】