MI SCL API
1. 概述¶
1.1. 模块说明¶
SCL将原始画面缩放到各个output port 指定分辨率。每个scl按照输入数据源的类型划分成不同的Device, 每一个output port 端口有crop/scaling/mirror/flip/pixel 转换功能。
1.2. 流程框图¶
图 1‑1:Tiramisu框图
MI_SCL 总共有6个scl 硬件, 按照输入源的类型,划分成不同的Device。
Device Id | Input port输入源类型 |
---|---|
Device0 | 只支持和MI_ISP output port0 realtime 连接 |
Device1 | 支持从Dram读取数据, 数据类型只支持YUV420/YUV422格式 支持MI_JPD realtime 绑定 |
Device2 | 只支持和MI_VIF YUV Realtime 连接 |
Device3 | 只支持从Dram读取数据, 数据类型只支持YUV420/YUV422格式, 只可以使用E_MI_SCL_HWSCL5, 支持Rotation, 做rotation的时候功能限制见MI_SCL_SetChnParam 支持E_MI_SYS_PIXEL_FRAME_YUV_TILE_420 压缩格式输出到MI_DISP |
HWSclId 规格
HWSclId | YUV422 Max width | 非YUV422 Max width | Pixel format | Bind type |
---|---|---|---|---|
0 | 8192 | 4608 | YUV42O/YUV422/ARGB | Frame mode Realtime Bind Venc(JPEG) Ring/HW_AUTOSYNC Bind Venc(h26x) |
1 | 8192 | 4608 | YUV42O/YUV422/ARGB | 同Port0 |
2 | 3840 | 3840 | YUV42O/YUV422/ARGB | 同Port0 |
3 | 3840 | 3840 | YUV42O/YUV422/ARGB | 同Port0 |
4 | 3840 | 3840 | YUV42O/YUV422/ARGB | 同Port0 |
5 | 3840 | 3840 | YUV42O/YUV422/ARGB TILE_420 | 同Port0 |
-
注意
-
相同的HWSclId不可以跨Device使用。
-
output portid按照MI_SCL_CreateDevice 时设置u32NeedUseHWOutPortMask从低位到高位依次和HWSCLID 映射。
-
output port和后端realtime/ring/hw_autosync 绑定时,后端仅支持和一个output port id 连接。可以支持多个channel 但是同一个output port id 绑定realtime或者 hw_autosync(h26x)。
-
1.3. 关键字说明¶
-
Device
Device 由固定的input 类型,和用户分配的HWSclId 组成。
-
Channel
一个Device可以分时复用为多个通道, 每个通道为一个channel。
-
Input Port
Channel上的输入端口,每个Device支持的输入类型请参考流程框图。
-
Output Port
Device上的输出端口,输出端口和Device 的HWSclId 一一对应。
2. API 参考¶
2.1. 功能模块API¶
API名 | 功能 |
---|---|
MI_SCL_CreateDevice | 创建SCL设备 |
MI_SCL_DestroyDevice | 销毁SCL设备 |
MI_SCL_CreateChannel | 创建SCL 通道 |
MI_SCL_DestroyChannel | 销毁SCL 通道 |
MI_SCL_SetChnParam | 设置通道属性 |
MI_SCL_GetChnParam | 获取通道属性 |
MI_SCL_SetInputPortCrop | 设置通道input 端口crop |
MI_SCL_GetInputPortCrop | 获取通道input端口crop 信息 |
MI_SCL_StartChannel | 启动通道 |
MI_SCL_StopChannel | 禁用通道 |
MI_SCL_SetOutputPortParam | 设置output 端口参数 |
MI_SCL_GetOutputPortParam | 获取output 端口参数 |
MI_SCL_EnableOutputPort | 使能output 端口 |
MI_SCL_DisableOutputPort | 禁用output 端口 |
MI_SCL_StretchBuf | 缩放、拉伸、裁剪指定内存中的图像数据 |
2.2. MI_SCL_CreateDevice¶
-
功能
创建一个SCL设备。
-
语法
MI_S32 MI_SCL_CreateDevice(MI_SCL_DEV DevId, MI_SCL_DevAttr_t *pstSclDevAttr)
-
形参
参数名称 描述 输入/输出 DevId SCL 设备号。 输入 pstSclDevAttr Scl 设备属性。 输入 -
返回值
-
MI_OK 成功。
-
非0 失败,详情参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
-
每个Device的特性参考1.2章节中 注意说明。
-
stCreateDevAttr.u32NeedUseHWOutPortMask = E_MI_SCL_HWSCL2| E_MI_SCL_HWSCL3| E_MI_SCL_HWSCL4;
每个channel的输出端口和Device上的HWSCL ID之间对应关系为:
Port0 -> HWSCL2
Port1 -> HWSCL3
Port2 -> HWSCL4
Portid 与HWSCL bitmask 从低到高对应。
-
有MI_VDEC使用场景,Device3 会被内部创建使用,其它Device不能再使用HWSCL5;用户创建Device3对应的channel 使用。
-
-
举例
MI_SCL 初始化流程:
MI_S32 ST_SclModuleInit(MI_SCL_DEV SclDevId) { ST_SclDevAttr_t *pstSclDevAttr= &gstSclModule.stSclDevAttr[SclDevId]; MI_SCL_CHANNEL SclChnId = 0; MI_SCL_PORT SclOutPortId =0; MI_SCL_DevAttr_t stCreateDevAttr; memset(&stCreateDevAttr, 0x0, sizeof(MI_SCL_DevAttr_t)); stCreateDevAttr.u32NeedUseHWOutPortMask=E_MI_SCL_HWSCL2|E_MI_SCL_HWSCL3| E_MI_SCL_HWSCL4; MI_SCL_CreateDevice((MI_SCL_DEV)SclDevId, &stCreateDevAttr); MI_SCL_ChannelAttr_t stSclChnAttr; memset(&stSclChnAttr, 0x0, sizeof(MI_SCL_ChannelAttr_t)); MI_SCL_CreateChannel((MI_SCL_DEV)SclDevId, SclChnId, &stSclChnAttr); if(pstSclChnAttr->stSclInPortAttr[0].stInputCropWin.u16Width !=0 && pstSclChnAttr->stSclInPortAttr[0].stInputCropWin.u16Height !=0) { MI_SCL_SetInputPortCrop((MI_SCL_DEV)SclDevId, SclChnId, &pstSclChnAttr->stSclInPortAttr[0].stInputCropWin); } MI_SCL_ChnParam_t stSclChnParam; memset(&stSclChnParam, 0x0, sizeof(MI_SCL_ChnParam_t)); stSclChnParam.eRot = pstSclChnAttr->eRotate; MI_SCL_SetChnParam((MI_SCL_DEV)SclDevId, SclChnId, &stSclChnParam); MI_SCL_StartChannel((MI_SCL_DEV)SclDevId, SclChnId); for(SclOutPortId=0; SclOutPortId<ST_MAX_ISP_OUTPORT_NUM; SclOutPortId++) { ST_PortAttr_t *pstSclOutputAttr = &pstSclChnAttr->stSclOutPortAttr[SclOutPortId]; if(pstSclOutputAttr->bUsed == TRUE) { MI_SCL_OutPortParam_t stSclOutputParam; memset(&stSclOutputParam, 0x0, sizeof(MI_SCL_OutPortParam_t)); memcpy(&stSclOutputParam.stSCLOutCropRect, &pstSclOutputAttr->stOrigPortCrop, sizeof(MI_SYS_WindowRect_t)); memcpy(&stSclOutputParam.stSCLOutputSize, &pstSclOutputAttr->stOrigPortSize, sizeof(MI_SYS_WindowSize_t)); stSclOutputParam.ePixelFormat = pstSclOutputAttr->ePixelFormat; stSclOutputParam.bMirror = pstSclOutputAttr->bMirror; stSclOutputParam.bFlip = pstSclOutputAttr->bFlip; MI_SCL_SetOutputPortParam((MI_SCL_DEV)SclDevId, SclChnId, SclOutPortId, &stSclOutputParam); MI_SCL_EnableOutputPort((MI_SCL_DEV)SclDevId, SclChnId, SclOutPortId); } } return MI_SUCCESS; }
MI_SCL 去初始化流程:
MI_S32 ST_SclModuleUnInit(MI_SCL_DEV SclDevId) { ST_SclDevAttr_t *pstSclDevAttr= &gstSclModule.stSclDevAttr[SclDevId]; MI_SCL_CHANNEL SclChnId = 0; MI_SCL_PORT SclOutPortId =0; ST_SclChannelAttr_t *pstSclChnAttr = &pstSclDevAttr->stSclChnlAttr[SclChnId]; for(SclOutPortId=0; SclOutPortId<ST_MAX_SCL_OUTPORT_NUM; SclOutPortId++) { MI_SCL_DisableOutputPort((MI_SCL_DEV)SclDevId, SclChnId, SclOutPortId); } MI_SCL_StopChannel((MI_SCL_DEV)SclDevId, SclChnId); MI_SCL_DestroyChannel((MI_SCL_DEV)SclDevId, SclChnId); MI_SCL_DestroyDevice((MI_SCL_DEV)SclDevId); return MI_SUCCESS; }
2.3. MI_SCL_DestroyDevice¶
-
功能
销毁一个SCL 设备。
-
语法
MI_S32 MI_SCL_DestroyDevice(MI_SCL_DEV DevId)
-
形参
参数名称 描述 输入/输出 DevId SCL 设备号 输入 -
返回值
-
MI_OK 成功。
-
非0 失败,详情参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
需要先禁用掉设备上所有的输出端口和通道,否则会返回失败。
-
举例
参考 MI_SCL_CreateDevice举例。
-
相关主题
2.4. MI_SCL_CreateChannel¶
-
功能
设备上创建一个通道。
-
语法
MI_S32 MI_SCL_CreateChannel(MI_SCL_DEV DevId, MI_SCL_CHANNEL ChnId, MI_SCL_ChannelAttr_t *pstChnAttr)
-
形参
参数名称 描述 输入/输出 DevId SCL 设备号 输入 ChnId SCL 通道号,取值范围(0~31)。 输入 pstChnAttr SCL 通道属性 输入 -
返回值
-
MI_OK 成功。
-
非0 失败,详情参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
需要先创建设备才能创建通道。
-
举例
参考 MI_SCL_CreateDevice举例。
-
相关主题
2.5. MI_SCL_DestroyChannel¶
-
功能
销毁设备上的一个通道。
-
语法
MI_S32 MI_SCL_DestroyChannel(MI_SCL_DEV DevId, MI_SCL_CHANNEL ChnId)
-
形参
参数名称 描述 输入/输出 DevId SCL 设备号 输入 ChnId SCL 通道号 输入 -
返回值
-
MI_OK 成功。
-
非0 失败,详情参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
需要关掉通道上的所有输出端口,才能销毁通道。
-
举例
参考 MI_SCL_CreateDevice举例。
-
相关主题
2.6. MI_SCL_SetChnParam¶
-
功能
动态设置通道参数。
-
语法
MI_S32 MI_SCL_SetChnParam(MI_SCL_DEV DevId, MI_SCL_CHANNEL ChnId, MI_SCL_ChnParam_t *pstChnParam)
-
形参
参数名称 描述 输入/输出 DevId SCL 设备号 输入 ChnId SCL 通道号 输入 pstChnParam 通道参数 输入 -
返回值
-
MI_OK 成功。
-
非0 失败,详情参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
-
通道已经在运行的情况下,需要改变通道参数, 需要先使用MI_SCL_StopChannel](#211-mi_scl_stopchannel)将通道停下,清除缓存数据。
-
Tiramisu 系列芯片只有Device3 支持rotation。
-
当SCL Dev3 设置rotation 90、180、270 时,output端口仅支持rotation功能,不支持crop/scaling/pixel format转换/Mirror/Flip。
-
rot时不支持MI_RGN attach 叠加osd/cover。
-
-
举例
参考 MI_SCL_CreateDevice举例。
-
相关主题
2.7. MI_SCL_GetChnParam¶
-
功能
获取通道参数。
-
语法
MI_S32 MI_SCL_GetChnParam(MI_SCL_DEV DevId, MI_SCL_CHANNEL ChnId, MI_SCL_ChnParam_t *pstChnParam)
-
形参
参数名称 描述 输入/输出 DevId SCL 设备号 输入 ChnId SCL 通道号 输入 pstChnParam SCL 通道参数 输出 -
返回值
-
MI_OK 成功。
-
非0 失败,详情参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
在没有设置的情况下,获取到的参数都为0。
-
相关主题
2.8. MI_SCL_SetInputPortCrop¶
-
功能
在输入端口设置裁剪区域。
-
语法
MI_S32 MI_SCL_SetInputPortCrop(MI_SCL_DEV DevId, MI_SCL_CHANNEL ChnId, MI_SYS_WindowRect_t *pstCropInfo)
-
形参
参数名称 描述 输入/输出 DevId SCL 设备号 输入 ChnId SCL 通道号 输入 pstCropInfo 裁剪区域 输入 -
返回值
-
MI_OK 成功。
-
非0 失败,详情参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
只有输入端口是从DRAM 读取数据时,该设置才能生效。
-
举例
参考 MI_SCL_CreateDevice举例。
-
相关主题
2.9. MI_SCL_GetInputPortCrop¶
-
功能
获取通道输入端口裁剪区域。
-
语法
MI_S32 MI_SCL_GetInputPortCrop(MI_SCL_DEV DevId, MI_SCL_CHANNEL ChnId, MI_SYS_WindowRect_t *pstCropInfo)
-
形参
参数名称 描述 输入/输出 DevId SCL 设备号 输入 ChnId SCL 通道号 输入 pstCropInfo 裁剪区域 输出 -
返回值
-
MI_OK 成功。
-
非0 失败,详情参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
当不需要裁剪时, 获取到的是输入端口分辨率
-
相关主题
2.10. MI_SCL_StartChannel¶
-
功能
启用设备上的一个通道。
-
语法
MI_S32 MI_SCL_StartChannel(MI_SCL_DEV DevId, MI_SCL_CHANNEL ChnId)
-
形参
参数名称 描述 输入/输出 DevId SCL 设备号 输入 ChnId SCL 通道号 输入 -
返回值
-
MI_OK 成功。
-
非0 失败,详情参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
和MI_SCL_StopChannel成对调用。
-
举例
参考MI_SCL_CreateDevice举例。
-
相关主题
2.11. MI_SCL_StopChannel¶
-
功能
停用设备上的一个通道。
-
语法
MI_S32 MI_SCL_StopChannel(MI_SCL_DEV DevId, MI_SCL_CHANNEL ChnId)
-
形参
参数名称 描述 输入/输出 DevId SCL 设备号 输入 ChnId SCL 通道号 输入 -
返回值
-
MI_OK 成功。
-
非0 失败,详情参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
在通道创建的情况下,都可以停下通道, 通道停下所有的输出端口都不会有数据输出。
-
举例
参考 MI_SCL_CreateDevice举例。
-
相关主题
2.12. MI_SCL_SetOutputPortParam¶
-
描述
设置通道输出端口参数。
-
语法
MI_S32 MI_SCL_SetOutputPortParam(MI_SCL_DEV DevId, MI_SCL_CHANNEL ChnId, MI_SCL_PORT PortId, MI_SCL_OutPortParam_t *pstOutPortParam)
-
参数
参数名称 描述 输入/输出 DevId SCL 设备号 输入 ChnId SCL 通道号 输入 PortId 输出端口号 输入 pstOutPortParam 输出端口参数 输入 -
返回值
-
MI_OK成功。
-
非MI_OK失败,参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
在输出端口已经启用的情况下,需要改变输出参数,需要先调用MI_SCL_DisableOutputPort](#215-mi_scl_disableoutputport) 禁用端口,再来设置参数,然后再启用输出端口。
-
举例
参考 MI_SCL_CreateDevice举例。
-
相关主题
2.13. MI_SCL_GetOutputPortParam¶
-
描述
获取输出端口参数。
-
语法
MI_S32 MI_SCL_GetOutputPortParam(MI_SCL_DEV DevId, MI_SCL_CHANNEL ChnId, MI_SCL_PORT PortId, MI_SCL_OutPortParam_t *pstOutPortParam)
-
参数
参数名称 描述 输入/输出 DevId SCL 设备号 输入 ChnId SCL 通道号 输入 PortId SCL 输出端口号 输入 pstOutPortParam SCL 输出端口参数 输出 -
返回值
-
MI_OK成功。
-
非MI_OK失败,参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
相关主题
2.14. MI_SCL_EnableOutputPort¶
-
描述
使能输出端口。
-
语法
MI_S32 MI_SCL_EnableOutputPort(MI_SCL_DEV DevId, MI_SCL_CHANNEL ChnId, MI_SCL_PORT PortId)
-
参数
参数名称 描述 输入/输出 DevId SCL 设备号 输入 ChnId SCL 通道号 输入 PortId SCL 输出端口号 输入 -
返回值
-
MI_OK成功。
-
非MI_OK失败,参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
和MI_SCL_DisableOutputPort 成对调用。
-
举例
参考 MI_SCL_CreateDevice举例。
-
相关主题
2.15. MI_SCL_DisableOutputPort¶
-
描述
禁用输出端口。
-
语法
MI_S32 MI_SCL_DisableOutputPort(MI_SCL_DEV DevId, MI_SCL_CHANNEL ChnId, MI_SCL_PORT PortId)
-
参数
参数名称 描述 输入/输出 DevId SCL 设备号 输入 ChnId SCL 通道号 输入 PortId 输出端口号 输入 -
返回值
-
MI_OK成功。
-
非MI_OK失败,参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
和MI_SCL_EnableOutputPort 成对调用。
-
举例
参考MI_SCL_CreateDevice举例。
-
相关主题
2.16. MI_SCL_StretchBuf¶
-
描述
缩放、拉伸、裁剪指定内存中的图像数据。
-
语法
MI_S32 MI_SCL_StretchBuf(MI_SCL_DirectBuf_t *pstSrcBuf, MI_SYS_WindowRect_t *pstSrcCrop,MI_SCL_DirectBuf_t *pstDstBuf, MI_SCL_FilterType_e eFilterType)
-
参数
参数名称 描述 输入/输出 pstSrcBuf 源数据buffer参数指针 pstSrcCrop 源数据裁剪区域 pstDstBuf 输出buffer参数指针 eFilterType Scl 使用滤波器类型 -
返回值
-
MI_OK成功。
-
非MI_OK失败,参照错误码。
-
-
依赖
-
头文件:mi_scl_datatype.h、mi_scl.h
-
库文件:
-
-
注意
-
该API使用的是Device3, 需要提前创建Device3。
-
该接口是阻塞形式,这帧数据做完才会结束。
-
-
相关主题
3. SCL 数据类型¶
3.1. 数据类型定义¶
数据类型 | 描述 |
---|---|
MI_SCL_DEV | SCL设备ID |
MI_SCL_CHANNEL | SCL 通道ID |
MI_SCL_PORT | SCL 输出端口ID |
MI_SCL_HWSclId_e | SCL 输出端口对应硬件scaling ID |
MI_SCL_DevAttr_t | SCL 设备属性 |
MI_SCL_ChannelAttr_t | SCL 通道静态属性 |
MI_SCL_ChnParam_t | SCL 通道动态属性 |
MI_SCL_OutPortParam_t | SCL 输出端口参数 |
MI_SCL_FilterType_e | SCL 滤波类型 |
MI_SCL_DirectBuf_t | SCL操作指定buffer 参数类型 |
3.2. MI_SCL_DEV¶
-
说明
定义SCL 设备ID类型。
-
定义
typedef MI_U32 MI_SCL_DEV;
3.3. MI_SCL_CHANNEL¶
-
说明
定义SCL 通道ID类型。
-
定义
typedef MI_U32 MI_SCL_CHANNEL;
3.4. MI_SCL_PORT¶
-
说明
定义SCL 输出端口ID类型。
-
定义
typedef MI_U32 MI_SCL_PORT;
3.5. MI_SCL_HWSclId_e¶
-
说明
SCL设备使用的硬件scaler Id 枚举。
-
定义
typedef enum { E_MI_SCL_HWSCLID_INVALID= 0, E_MI_SCL_HWSCL0 = 0x0001, E_MI_SCL_HWSCL1 = 0x0002, E_MI_SCL_HWSCL2 = 0x0004, E_MI_SCL_HWSCL3 = 0x0008, E_MI_SCL_HWSCL4 = 0x0010, E_MI_SCL_HWSCL5 = 0x0020, E_MI_SCL_HWSCL_MAX = 0xffff, }MI_SCL_HWSclId_e;
-
相关数据类型及接口
3.6. MI_SCL_DevAttr_t¶
-
说明
SCL 设备属性。
-
定义
typedef struct MI_SCL_DevAttr_s { MI_U32 u32NeedUseHWOutPortMask; }MI_SCL_DevAttr_t;
-
成员
成员名称 描述 u32NeedUseHWOutPortMask Device需要使用的Scaler id。 -
注意事项
-
由MI_SCL_HWSclId_e成员bit mask组成。
-
每个HW scl id 特点参考1.2.1章节,HW sclid 规格,按照场景需求选择。
-
-
相关数据类型及接口
3.7. MI_SCL_ChannelAttr_t¶
-
说明
Scl 通道属性。
-
定义
typedef struct MI_SCL_ChannelAttr_s { MI_U32 u32Reserved; }MI_SCL_ChannelAttr_t;
-
成员
成员名称 描述 u32Reserved 预留参数。 -
注意事项
Tiramisu系列芯片没有通道静态设置参数,可直接设置0。
-
相关数据类型及接口
3.8. MI_SCL_ChnParam_t¶
-
说明
SCL通道动态参数类型
-
定义
typedef struct MI_SCL_ChnParam_s { MI_SYS_Rotate_e eRot; }MI_SCL_ChnParam_t;
-
成员
成员名称 描述 eRot Rotation 参数 -
相关数据类型及接口
3.9. MI_SCL_OutPortParam_t¶
-
说明
SCL 输出端口参数。
-
定义
typedef struct MI_SCL_OutPortParam_s { MI_SYS_WindowRect_t stSCLOutCropRect; MI_SYS_WindowSize_t stSCLOutputSize; MI_BOOL bMirror; MI_BOOL bFlip; MI_SYS_PixelFormat_e ePixelFormat; MI_SYS_CompressMode_e eCompressMode; }MI_SCL_OutPortParam_t;
-
成员
成员名称 描述 stSCLOutCropRect 输出裁剪区域 stSCLOutputSize 输出size bMirror 使能水平翻转 bFlip 使能垂直翻转 ePixelFormat 输出像素格式 eCompressMode 输出压缩格式 -
注意事项
Tiramisu 系列芯片不支持压缩格式。
-
相关数据类型及接口
3.10. MI_SCL_FilterType_e¶
-
说明
Scl 滤波器类型。
-
定义
typedef enum { E_MI_SCL_FILTER_TYPE_AUTO, E_MI_SCL_FILTER_TYPE_BYPASS, E_MI_SCL_FILTER_TYPE_BILINEAR, E_MI_SCL_FILTER_TYPE_BICUBIC, E_MI_SCL_FILTER_TYPE_MAX, } MI_SCL_FilterType_e;
-
成员
成员名称 描述 E_MI_SCL_FILTER_TYPE_AUTO 自动选择滤波器 E_MI_SCL_FILTER_TYPE_BYPASS 不经过算法滤波器 E_MI_SCL_FILTER_TYPE_BILINEAR 双线性滤波器 E_MI_SCL_FILTER_TYPE_BICUBIC 双立方插值滤波器 E_MI_SCL_FILTER_TYPE_MAX 滤波器类型最大值 -
注意事项
当选择和算法相同的滤波器类型,可以得到更加精准的算法结果。
-
相关数据类型及接口
3.11. MI_SCL_DirectBuf_t¶
-
说明
SCL 直接操作buffer 参数类型。
-
定义
typedef struct MI_SCL_DirectBuf_s { MI_SYS_PixelFormat_e ePixelFormat; MI_U32 u32Width; MI_U32 u32Height; MI_PHY phyAddr[2]; MI_U32 u32Stride[2]; MI_U32 u32BuffSize; }MI_SCL_DirectBuf_t;
-
成员
成员名称 描述 ePixelFormat Buffer 像素格式 u32Width 有效像素宽度 u32Height 有效像素高度 phyAddr Buffer 物理地址 u32Stride Buffer 一行占字节数 u32BuffSize Buffer 占用空间 -
相关数据类型及接口
4. SCL 错误码¶
视频输入 API 错误码如下表所示。
错误代码 | 宏定义 | 描述 |
---|---|---|
0XA0222000 | MI_ERR_SCL_INVALID_DEVID | 设备号无效 |
0XA0222001 | MI_ERR_SCL_INVALID_CHNID | 通道号无效 |
0XA0222002 | MI_ERR_SCL_INVALID_PORTID | 端口号无效 |
0XA0222003 | MI_ERR_SCL_ILLEGAL_PARAM | 参数设置无效 |
0XA0222004 | MI_ERR_SCL_EXIST | 设备已经存在 |
0XA0222005 | MI_ERR_SCL_UNEXIST | 设备已经不存在 |
0XA0222006 | MI_ERR_SCL_NULL_PTR | 输入参数空指针错误 |
0XA0222007 | MI_ERR_SCL_NOT_SUPPORT | 操作不支持 |
0XA0222008 | MI_ERR_SCL_NOT_PERM | 操作不允许 |
0XA0222009 | MI_ERR_SCL_NOMEM | 分配内存失败 |
0XA022200a | MI_ERR_SCL_NOBUF | 缓存为满 |
0XA022200b | MI_ERR_SCL_BUF_EMPTY | 缓存为空 |
0XA022200c | MI_ERR_SCL_NOTREADY | 系统未初始化 |
0XA022200d | MI_ERR_SCL_BUSY | 系统忙 |