11bd4fe43Sopenharmony_ci### 3.1.2 VI理论及实现方式 21bd4fe43Sopenharmony_ci 31bd4fe43Sopenharmony_ci#### 3.1.2.1 VI理论 41bd4fe43Sopenharmony_ci 51bd4fe43Sopenharmony_ci视频输入(VI)模块实现的功能:通过 MIPI Rx(含MIPI接口、LVDS接口和HISPI接口),SLVS-EC,BT.1120,BT.656,BT.601,DC等接口接收视频数据。VI将接收到的数据存入到指定的内存区域,在此过程中,VI可以对接收到的原始视频图像数据进行处理,实现视频数据的采集。 61bd4fe43Sopenharmony_ci 71bd4fe43Sopenharmony_ciVI功能框图如下: 81bd4fe43Sopenharmony_ci 91bd4fe43Sopenharmony_ci 101bd4fe43Sopenharmony_ci 111bd4fe43Sopenharmony_ciVI从软件上划分了输入设备(DEV),输入PIPE (图示为物理PIPE,虚拟PIPE只包含ISP_BE)、物理通道(PHY_CHN)、扩展通道(EXT_CHN)四个层级。Hi3516DV300的设备、PIPE、通道个数差异如下表所示: 121bd4fe43Sopenharmony_ci 131bd4fe43Sopenharmony_ci| 芯片 | DEV <br />VI_MAX_ DEV_NUM | PHY_PIPE<br />VI_MAX_PHY<br />_PIPE_NUM | VIR_PIPE <br />VI_MAX_VIR<br />_PIPE_NUM | PHY_CHN<br />VI_MAX_PHY<br />_CHN_NUM | EXT_CHN<br />VI_MAX<br />_EXT_CHN_NUM | 141bd4fe43Sopenharmony_ci| ----------- | :-----------------------: | --------------------------------------- | ---------------------------------------- | ------------------------------------- | :-----------------------------------: | 151bd4fe43Sopenharmony_ci| Hi3516DV300 | 2 | 4 | 0 | 1 | 8 | 161bd4fe43Sopenharmony_ci 171bd4fe43Sopenharmony_ciHi3516DV300视频输入通道功能如下图所示: 181bd4fe43Sopenharmony_ci 191bd4fe43Sopenharmony_ci 201bd4fe43Sopenharmony_ci 211bd4fe43Sopenharmony_ci#### 3.1.2.2 VI实现方式 221bd4fe43Sopenharmony_ci 231bd4fe43Sopenharmony_ci在helloworld中,VI部分实现细节如下: 241bd4fe43Sopenharmony_ci 251bd4fe43Sopenharmony_ci##### 3.1.2.2.1 config vi 261bd4fe43Sopenharmony_ci 271bd4fe43Sopenharmony_ci配置vi参数首先要对Sensor的参数进行配置,其中,SAMPLE_COMM_VI_GetSensorInfo接口是获取Sensor信息,该接口是对SAMPLE_VI_CONFIG_S结构体的配置, SAMPLE_VI_CONFIG_S如下图所示: 281bd4fe43Sopenharmony_ci 291bd4fe43Sopenharmony_ci 301bd4fe43Sopenharmony_ci 311bd4fe43Sopenharmony_ci分析SAMPLE_VI_CONFIG_S结构体,核心是对SAMPLE_VI_INFO_S结构体进行配置,如下图所示: 321bd4fe43Sopenharmony_ci 331bd4fe43Sopenharmony_ci 341bd4fe43Sopenharmony_ci 351bd4fe43Sopenharmony_ci分析SAMPLE_VI_INFO_S结构体,其围绕SAMPLE_SENSOR_INFO_S、SAMPLE_DEV_INFO_S、SAMPLE_PIPE_INFO_S、SAMPLE_CHN_INFO_S、SAMPLE_SNAP_INFO_S结构体来展开,其每个结果体成员定义如下: 361bd4fe43Sopenharmony_ci 371bd4fe43Sopenharmony_ci**SAMPLE_SENSOR_INFO_S:** 381bd4fe43Sopenharmony_ci 391bd4fe43Sopenharmony_ci该结构体成员分别定义:SnsType、SnsId、BusId、MipiDev成员。 401bd4fe43Sopenharmony_ci 411bd4fe43Sopenharmony_ci 421bd4fe43Sopenharmony_ci 431bd4fe43Sopenharmony_ci**SAMPLE_DEV_INFO_S:** 441bd4fe43Sopenharmony_ci 451bd4fe43Sopenharmony_ci该结构体定义:ViDev、WDRMode成员。 461bd4fe43Sopenharmony_ci 471bd4fe43Sopenharmony_ci 481bd4fe43Sopenharmony_ci 491bd4fe43Sopenharmony_ci**SAMPLE_PIPE_INFO_S:** 501bd4fe43Sopenharmony_ci 511bd4fe43Sopenharmony_ci该结构体定义:Pipe、MastPipeMode、MultiPipe、VcNumCfged、IspBypass、PixFmt、VCNum结构体成员。 521bd4fe43Sopenharmony_ci 531bd4fe43Sopenharmony_ci 541bd4fe43Sopenharmony_ci 551bd4fe43Sopenharmony_ci**SAMPLE_CHN_INFO_S:** 561bd4fe43Sopenharmony_ci 571bd4fe43Sopenharmony_ci该结构体成员定义:ViChn、PixFormat、DynamicRange、VideoFormat、CompressMode成员。 581bd4fe43Sopenharmony_ci 591bd4fe43Sopenharmony_ci 601bd4fe43Sopenharmony_ci 611bd4fe43Sopenharmony_ci**SAMPLE_SNAP_INFO_S:** 621bd4fe43Sopenharmony_ci 631bd4fe43Sopenharmony_ci该结构体成员定义:Snap、DoublePipe、VideoPipe、SnapPipe、VideoPipeMode、SnapPipeMode成员。 641bd4fe43Sopenharmony_ci 651bd4fe43Sopenharmony_ci 661bd4fe43Sopenharmony_ci 671bd4fe43Sopenharmony_ci关于上述结构体列举的枚举型成员,自行查阅**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/platform/common/sample_comm.h**文件,该文件里面详细定义枚举型成员,这里不再详细阐述。 681bd4fe43Sopenharmony_ci 691bd4fe43Sopenharmony_ciSAMPLE_COMM_VI_GetSensorInfo接口实现细节,如下图所示: 701bd4fe43Sopenharmony_ci 711bd4fe43Sopenharmony_ci可参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/platform/common/中的sample_comm_vi.c文件** 721bd4fe43Sopenharmony_ci 731bd4fe43Sopenharmony_ci 741bd4fe43Sopenharmony_ci 751bd4fe43Sopenharmony_ci配置vi还需要配置SAMPLE_VI_CONFIG_S其他成员元素,实现细节如下: 761bd4fe43Sopenharmony_ci 771bd4fe43Sopenharmony_ci以下截图可在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/helloworld/smp/sample_lcd.c文件中找到 781bd4fe43Sopenharmony_ci 791bd4fe43Sopenharmony_ci 801bd4fe43Sopenharmony_ci 811bd4fe43Sopenharmony_ci 821bd4fe43Sopenharmony_ci 831bd4fe43Sopenharmony_ci 841bd4fe43Sopenharmony_ci 851bd4fe43Sopenharmony_ci##### 3.1.2.2.2 get picture size 861bd4fe43Sopenharmony_ci 871bd4fe43Sopenharmony_ciSAMPLE_COMM_VI_GetSizeBySensor接口通过sensor型号来获取图片的大小,通过enPicSize输出,如PIC_1080P,实现接口如下: 881bd4fe43Sopenharmony_ci 891bd4fe43Sopenharmony_ci可参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/helloworld/smp/sample_lcd.c**中的int SampleVioVpssVoMipi(void)接口中的get picture size部分。 901bd4fe43Sopenharmony_ci 911bd4fe43Sopenharmony_ci 921bd4fe43Sopenharmony_ci 931bd4fe43Sopenharmony_ci根据SAMPLE_COMM_VI_GetSizeBySensor接口输出的enPicSize来得到图片的width和height,实现方式通过SAMPLE_COMM_SYS_GetPicSize来实现,如下图所示: 941bd4fe43Sopenharmony_ci 951bd4fe43Sopenharmony_ci 961bd4fe43Sopenharmony_ci 971bd4fe43Sopenharmony_ciSAMPLE_COMM_VI_GetSizeBySensor和SAMPLE_COMM_SYS_GetPicSize接口实现方式较为简单,读者自行查阅**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/platform/common/目录**下的**sample_comm_vi.c和sample_comm_sys.c**即可。 981bd4fe43Sopenharmony_ci 991bd4fe43Sopenharmony_ci##### 3.1.2.2.3 config vb and get picture/raw buffer size 1001bd4fe43Sopenharmony_ci 1011bd4fe43Sopenharmony_ci启动vi之前,需要配置vb(视频缓存池),视频缓存池的概念如下: 1021bd4fe43Sopenharmony_ci 1031bd4fe43Sopenharmony_ci视频缓存池主要向媒体业务提供大块物理内存管理功能,负责内存的分配和回收,充分发挥内存缓存池的作用,让物理内存资源在各个媒体处理模块中合理使用。 1041bd4fe43Sopenharmony_ci 1051bd4fe43Sopenharmony_ci一组大小相同、物理地址连续的缓存块组成一个视频缓存池。必须在系统初始化之前配置公共视频缓存池。根据业务的不同,公共缓存池的数量、缓存块的大小和数量不同。 1061bd4fe43Sopenharmony_ci 1071bd4fe43Sopenharmony_ci所有的视频输入通道都可以从公共视频缓存池中获取视频缓存块用于保存采集的图像,如下图所示,VI从公共视频缓存池B中获取视频缓存块Bm,缓存块Bm经VI发送给VPSS,输入缓存块Bm经过VPSS处理之后被释放回公共视频缓存池。假设VPSS通道的工作模式是USER,则VPSS通道0从公共视频缓存池B中获取缓存块Bi作为输出图像缓存buffer发送给VENC,VPSS通道1从公共视频缓存池B中获取缓存块Bk作为输出图像缓存buffer发送给VO,Bi经VENC编码完之后释放回公共视频缓存池,Bk经VO显示完之后释放回公共视频缓存池。 1081bd4fe43Sopenharmony_ci 1091bd4fe43Sopenharmony_ci典型的公共视频缓存池数据流图如下图所示: 1101bd4fe43Sopenharmony_ci 1111bd4fe43Sopenharmony_ci 1121bd4fe43Sopenharmony_ci 1131bd4fe43Sopenharmony_ci**注:**不同类型的视频缓存池大小计算请参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiMPP媒体处理软件 V4.0 开发参考.pdf》文档中的表2-1中的hi_buffer.h内容。 1141bd4fe43Sopenharmony_ci 1151bd4fe43Sopenharmony_ci核心配置VB_CONFIG_S结构体,该结构体定义如下: 1161bd4fe43Sopenharmony_ci 1171bd4fe43Sopenharmony_ci以下结构体可在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/include/mpi_vb.h文件中找到 1181bd4fe43Sopenharmony_ci 1191bd4fe43Sopenharmony_ci**VB_CONFIG_S** 1201bd4fe43Sopenharmony_ci 1211bd4fe43Sopenharmony_ci【说明】 1221bd4fe43Sopenharmony_ci 1231bd4fe43Sopenharmony_ci* 定义视频缓存池属性结构体 1241bd4fe43Sopenharmony_ci 1251bd4fe43Sopenharmony_ci【定义】 1261bd4fe43Sopenharmony_ci 1271bd4fe43Sopenharmony_ci 1281bd4fe43Sopenharmony_ci 1291bd4fe43Sopenharmony_ci【成员】 1301bd4fe43Sopenharmony_ci 1311bd4fe43Sopenharmony_ci 1321bd4fe43Sopenharmony_ci 1331bd4fe43Sopenharmony_ci**【注意事项】** 1341bd4fe43Sopenharmony_ci 1351bd4fe43Sopenharmony_ci* u32BlkSize等于0或u32BlkCnt等于0,则对应的缓存池不会被创建。 1361bd4fe43Sopenharmony_ci 1371bd4fe43Sopenharmony_ci* 建议整个结构体先memset为0再按需赋值。 1381bd4fe43Sopenharmony_ci 1391bd4fe43Sopenharmony_ci**对VB_CONFIG_S中嵌套的VB_POOL_CONFIG_S结构体进行说明。** 1401bd4fe43Sopenharmony_ci 1411bd4fe43Sopenharmony_ci**VB_POOL_CONFIG_S** 1421bd4fe43Sopenharmony_ci 1431bd4fe43Sopenharmony_ci【说明】 1441bd4fe43Sopenharmony_ci 1451bd4fe43Sopenharmony_ci* 定义视频缓存池属性结构体。 1461bd4fe43Sopenharmony_ci 1471bd4fe43Sopenharmony_ci【定义】 1481bd4fe43Sopenharmony_ci 1491bd4fe43Sopenharmony_ci 1501bd4fe43Sopenharmony_ci 1511bd4fe43Sopenharmony_ci【成员】 1521bd4fe43Sopenharmony_ci 1531bd4fe43Sopenharmony_ci 1541bd4fe43Sopenharmony_ci 1551bd4fe43Sopenharmony_ci【注意事项】 1561bd4fe43Sopenharmony_ci 1571bd4fe43Sopenharmony_ci* 每个缓存块的大小u64BlkSize应根据当前图像宽高、像素格式、数据位宽、是否压缩等来计算。详细计算方法请参见**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiMPP媒体处理软件 V4.0 开发参考.pdf》表2-1和代码[hi_buffer.h](https://gitee.com/openharmony/device_soc_hisilicon/blob/master/hi3516dv300/sdk_linux/include/hi_buffer.h)里面各种格式的图像存储计算公式。 1581bd4fe43Sopenharmony_ci 1591bd4fe43Sopenharmony_ci* 该缓存池是从空闲MMZ内存中分配,一个缓存池包含若干个大小相同的缓存块。如果该缓存池的大小超过了保留内存中的空闲空间,则创建缓存池会失败。 1601bd4fe43Sopenharmony_ci 1611bd4fe43Sopenharmony_ci* 用户需保证输入的DDR名字已经存在,如果输入不存在DDR的名字,会造成分不到内存。如果数组acMmzName被memset为0则表示在没有命名的DDR中创建缓存池。 1621bd4fe43Sopenharmony_ci 1631bd4fe43Sopenharmony_ci**对VB_POOL_CONFIG_S中嵌套的结构体VB_REMAP_MODE_E进行解释。** 1641bd4fe43Sopenharmony_ci 1651bd4fe43Sopenharmony_ci**VB_REMAP_MODE_E** 1661bd4fe43Sopenharmony_ci 1671bd4fe43Sopenharmony_ci【说明】 1681bd4fe43Sopenharmony_ci 1691bd4fe43Sopenharmony_ci* 定义VB内核态虚拟地址映射模式。 1701bd4fe43Sopenharmony_ci 1711bd4fe43Sopenharmony_ci【定义】 1721bd4fe43Sopenharmony_ci 1731bd4fe43Sopenharmony_ci 1741bd4fe43Sopenharmony_ci 1751bd4fe43Sopenharmony_ci【成员】 1761bd4fe43Sopenharmony_ci 1771bd4fe43Sopenharmony_ci 1781bd4fe43Sopenharmony_ci 1791bd4fe43Sopenharmony_ci【注意事项】 1801bd4fe43Sopenharmony_ci 1811bd4fe43Sopenharmony_ci* 无 1821bd4fe43Sopenharmony_ci 1831bd4fe43Sopenharmony_ci 1841bd4fe43Sopenharmony_ci 1851bd4fe43Sopenharmony_ci**配置vb具体的代码实现方式如下图所示:** 1861bd4fe43Sopenharmony_ci 1871bd4fe43Sopenharmony_ci* 可参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/helloworld/smp/sample_lcd.c文件中** StVbParamCfg( )函数。 1881bd4fe43Sopenharmony_ci 1891bd4fe43Sopenharmony_ci 1901bd4fe43Sopenharmony_ci 1911bd4fe43Sopenharmony_ci**get picture buffer size和get raw buffer size代码实现方式如下图所示:** 1921bd4fe43Sopenharmony_ci 1931bd4fe43Sopenharmony_ci* 可参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/helloworld/smp/sample_lcd.c中的**HI_S32 int SampleVioVpssVoMipi(void)接口中的get picture buffer size部分和get raw buffer size部分。 1941bd4fe43Sopenharmony_ci 1951bd4fe43Sopenharmony_ci 1961bd4fe43Sopenharmony_ci 1971bd4fe43Sopenharmony_ci##### 3.1.2.2.4 Vb init & MPI system init 1981bd4fe43Sopenharmony_ci 1991bd4fe43Sopenharmony_ci通过**HI_S32 SAMPLE_COMM_SYS_Init(VB_CONFIG_S* pstVbConfig);**接口进行system初始化,可参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/helloworld/smp/sample_lcd.c中**的**int SampleVioVpssVoMipi(void)**接口中的**vb init & MPI system init**部分,如下图所示: 2001bd4fe43Sopenharmony_ci 2011bd4fe43Sopenharmony_ci 2021bd4fe43Sopenharmony_ci 2031bd4fe43Sopenharmony_ci进入device/soc/hisilicon/hi3516dv300/sdk_linux/sample/platform/common/sample_comm_sys.c的SAMPLE_COMM_SYS_Init接口,对其调用的底层接口进行说明和阐述,调用的接口如下: 2041bd4fe43Sopenharmony_ci 2051bd4fe43Sopenharmony_ci以下接口可以在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/include/mpi_sys.h文件中找到 2061bd4fe43Sopenharmony_ci 2071bd4fe43Sopenharmony_ci**HI_MPI_SYS_Exit** 2081bd4fe43Sopenharmony_ci 2091bd4fe43Sopenharmony_ci【描述】 2101bd4fe43Sopenharmony_ci 2111bd4fe43Sopenharmony_ci* 去初始化MPP系统。包括音频输入输出、视频输入输出、视频编解码、视频叠加区域、视频处理、图形处理等模块都会被销毁或者禁用 2121bd4fe43Sopenharmony_ci 2131bd4fe43Sopenharmony_ci【语法】 2141bd4fe43Sopenharmony_ci 2151bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_SYS_Exit(HI_VOID); 2161bd4fe43Sopenharmony_ci 2171bd4fe43Sopenharmony_ci【参数】 2181bd4fe43Sopenharmony_ci 2191bd4fe43Sopenharmony_ci* 无 2201bd4fe43Sopenharmony_ci 2211bd4fe43Sopenharmony_ci【返回值】 2221bd4fe43Sopenharmony_ci 2231bd4fe43Sopenharmony_ci 2241bd4fe43Sopenharmony_ci 2251bd4fe43Sopenharmony_ci【需求】 2261bd4fe43Sopenharmony_ci 2271bd4fe43Sopenharmony_ci* 头文件:hi_comm_sys.h、mpi_sys.h 2281bd4fe43Sopenharmony_ci 2291bd4fe43Sopenharmony_ci* 库文件:libmpi.a 2301bd4fe43Sopenharmony_ci 2311bd4fe43Sopenharmony_ci【注意】 2321bd4fe43Sopenharmony_ci 2331bd4fe43Sopenharmony_ci* 去初始化时,如果有阻塞在MPI上的用户进程,则去初始化会失败。如果所有阻塞在MPI上的调用都返回,则可以成功去初始化。 2341bd4fe43Sopenharmony_ci 2351bd4fe43Sopenharmony_ci* 可以反复去初始化,不返回失败。 2361bd4fe43Sopenharmony_ci 2371bd4fe43Sopenharmony_ci* 由于系统去初始化不会销毁音频的编解码通道,因此这些通道的销毁需要用户主动进行。如果创建这些通道的进程退出,则通道随之被销毁。 2381bd4fe43Sopenharmony_ci 2391bd4fe43Sopenharmony_ci**注:本章节涉及到的错误码请参考源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中的《HiMPP媒体处理软件V4.0开发参考.pdf》指导手册中对应的错误码** 2401bd4fe43Sopenharmony_ci 2411bd4fe43Sopenharmony_ci以下四个接口可在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/include/mpi_vb.h文件中找到 2421bd4fe43Sopenharmony_ci 2431bd4fe43Sopenharmony_ci**HI_MPI_VB_Exit** 2441bd4fe43Sopenharmony_ci 2451bd4fe43Sopenharmony_ci【描述】 2461bd4fe43Sopenharmony_ci 2471bd4fe43Sopenharmony_ci* 去初始化MPP视频缓存池。 2481bd4fe43Sopenharmony_ci 2491bd4fe43Sopenharmony_ci【语法】 2501bd4fe43Sopenharmony_ci 2511bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VB_Exit (HI_VOID); 2521bd4fe43Sopenharmony_ci 2531bd4fe43Sopenharmony_ci【参数】 2541bd4fe43Sopenharmony_ci 2551bd4fe43Sopenharmony_ci* 无。 2561bd4fe43Sopenharmony_ci 2571bd4fe43Sopenharmony_ci【返回值】 2581bd4fe43Sopenharmony_ci 2591bd4fe43Sopenharmony_ci 2601bd4fe43Sopenharmony_ci 2611bd4fe43Sopenharmony_ci【需求】 2621bd4fe43Sopenharmony_ci 2631bd4fe43Sopenharmony_ci* 头文件:hi_comm_vb.h、mpi_vb.h 2641bd4fe43Sopenharmony_ci 2651bd4fe43Sopenharmony_ci* 库文件:libmpi.a 2661bd4fe43Sopenharmony_ci 2671bd4fe43Sopenharmony_ci【注意】 2681bd4fe43Sopenharmony_ci 2691bd4fe43Sopenharmony_ci* 必须先调用HI_MPI_SYS_Exit去初始化MPP系统,再去初始化缓存池,否则返回失败。 2701bd4fe43Sopenharmony_ci 2711bd4fe43Sopenharmony_ci* 可以反复去初始化,不返回失败。 2721bd4fe43Sopenharmony_ci 2731bd4fe43Sopenharmony_ci* 去初始化不会清除先前对缓存池的配置。 2741bd4fe43Sopenharmony_ci 2751bd4fe43Sopenharmony_ci* 退出VB池之前请确保VB池里的任何VB都没有被占用,否则无法退出。 2761bd4fe43Sopenharmony_ci 2771bd4fe43Sopenharmony_ci**HI_MPI_VB_SetConfig** 2781bd4fe43Sopenharmony_ci 2791bd4fe43Sopenharmony_ci【描述】 2801bd4fe43Sopenharmony_ci 2811bd4fe43Sopenharmony_ci* 设置MPP视频缓存池属性。 2821bd4fe43Sopenharmony_ci 2831bd4fe43Sopenharmony_ci【语法】 2841bd4fe43Sopenharmony_ci 2851bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VB_SetConfig(const VB_CONFIG_S *pstVbConfig); 2861bd4fe43Sopenharmony_ci 2871bd4fe43Sopenharmony_ci【参数】 2881bd4fe43Sopenharmony_ci 2891bd4fe43Sopenharmony_ci 2901bd4fe43Sopenharmony_ci 2911bd4fe43Sopenharmony_ci【返回值】 2921bd4fe43Sopenharmony_ci 2931bd4fe43Sopenharmony_ci 2941bd4fe43Sopenharmony_ci 2951bd4fe43Sopenharmony_ci【需求】 2961bd4fe43Sopenharmony_ci 2971bd4fe43Sopenharmony_ci* 头文件:hi_comm_vb.h、mpi_vb.h 2981bd4fe43Sopenharmony_ci 2991bd4fe43Sopenharmony_ci* 库文件:libmpi.a 3001bd4fe43Sopenharmony_ci 3011bd4fe43Sopenharmony_ci【注意】 3021bd4fe43Sopenharmony_ci 3031bd4fe43Sopenharmony_ci* 只能在系统处于未初始化的状态下,才可以设置缓存池属性,否则会返回失败。 3041bd4fe43Sopenharmony_ci 3051bd4fe43Sopenharmony_ci* video buf根据不同的应用场景需要不同的配置。配置规则参见**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiMPP媒体处理软件 V4.0 开发参考.pdf》2.2.1 “视频缓存池”。 3061bd4fe43Sopenharmony_ci 3071bd4fe43Sopenharmony_ci* 公共缓存池中每个缓存块的大小应根据当前图像像素格式以及图像是否压缩而有所不同。具体分配大小请参考VB_CONFIG_S结构体中的描述。 3081bd4fe43Sopenharmony_ci 3091bd4fe43Sopenharmony_ci**HI_MPI_VB_Init** 3101bd4fe43Sopenharmony_ci 3111bd4fe43Sopenharmony_ci【描述】 3121bd4fe43Sopenharmony_ci 3131bd4fe43Sopenharmony_ci* 初始化MPP视频缓存池。 3141bd4fe43Sopenharmony_ci 3151bd4fe43Sopenharmony_ci【语法】 3161bd4fe43Sopenharmony_ci 3171bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VB_Init (HI_VOID); 3181bd4fe43Sopenharmony_ci 3191bd4fe43Sopenharmony_ci【参数】 3201bd4fe43Sopenharmony_ci 3211bd4fe43Sopenharmony_ci* 无。 3221bd4fe43Sopenharmony_ci 3231bd4fe43Sopenharmony_ci【返回值】 3241bd4fe43Sopenharmony_ci 3251bd4fe43Sopenharmony_ci 3261bd4fe43Sopenharmony_ci 3271bd4fe43Sopenharmony_ci【需求】 3281bd4fe43Sopenharmony_ci 3291bd4fe43Sopenharmony_ci* 头文件:hi_comm_vb.h、mpi_vb.h 3301bd4fe43Sopenharmony_ci 3311bd4fe43Sopenharmony_ci* 库文件:libmpi.a 3321bd4fe43Sopenharmony_ci 3331bd4fe43Sopenharmony_ci【注意】 3341bd4fe43Sopenharmony_ci 3351bd4fe43Sopenharmony_ci* 必须先调用HI_MPI_VB_SetConfig配置缓存池属性,再初始化缓存池,否则会失败。 3361bd4fe43Sopenharmony_ci 3371bd4fe43Sopenharmony_ci* 可反复初始化,不返回失败。 3381bd4fe43Sopenharmony_ci 3391bd4fe43Sopenharmony_ci**HI_MPI_SYS_Init** 3401bd4fe43Sopenharmony_ci 3411bd4fe43Sopenharmony_ci【描述】 3421bd4fe43Sopenharmony_ci 3431bd4fe43Sopenharmony_ci* 初始化MPP系统。包括音频输入输出、视频输入输出、视频编解码、视频叠加区域、视频处理、图形处理等模块都会被初始化。 3441bd4fe43Sopenharmony_ci 3451bd4fe43Sopenharmony_ci【语法】 3461bd4fe43Sopenharmony_ci 3471bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_SYS_Init(HI_VOID); 3481bd4fe43Sopenharmony_ci 3491bd4fe43Sopenharmony_ci【参数】 3501bd4fe43Sopenharmony_ci 3511bd4fe43Sopenharmony_ci* 无。 3521bd4fe43Sopenharmony_ci 3531bd4fe43Sopenharmony_ci【返回值】 3541bd4fe43Sopenharmony_ci 3551bd4fe43Sopenharmony_ci 3561bd4fe43Sopenharmony_ci 3571bd4fe43Sopenharmony_ci【需求】 3581bd4fe43Sopenharmony_ci 3591bd4fe43Sopenharmony_ci* 头文件:hi_comm_sys.h、mpi_sys.h 3601bd4fe43Sopenharmony_ci 3611bd4fe43Sopenharmony_ci* 库文件:libmpi.a 3621bd4fe43Sopenharmony_ci 3631bd4fe43Sopenharmony_ci【注意】 3641bd4fe43Sopenharmony_ci 3651bd4fe43Sopenharmony_ci* 必须先调用HI_MPI_SYS_SetConfig配置MPP系统后才能初始化,否则初始化会失败。 3661bd4fe43Sopenharmony_ci* 由于MPP系统的正常运行依赖于缓存池,因此需要先调用HI_MPI_VB_Init初始化缓存池,再初始化MPP系统,否则会导致业务运行异常。 3671bd4fe43Sopenharmony_ci* 如果多次初始化,仍会返回成功,但实际上系统不会对MPP的运行状态有任何影响。 3681bd4fe43Sopenharmony_ci* 只要有一个进程进行初始化即可,不需要所有的进程都做系统初始化的操作。 3691bd4fe43Sopenharmony_ci* 由于音频模块依赖用户态属性,故音频不支持多进程操作。用户需要保证音频的相关操作和HI_MPI_SYS_Init在同一个进程中。 3701bd4fe43Sopenharmony_ci 3711bd4fe43Sopenharmony_ciSAMPLE_COMM_SYS_Init接口实现细节如下: 3721bd4fe43Sopenharmony_ci 3731bd4fe43Sopenharmony_ci以下截图可在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/platform/common/sample_comm_sys.c文件中找到 3741bd4fe43Sopenharmony_ci 3751bd4fe43Sopenharmony_ci 3761bd4fe43Sopenharmony_ci 3771bd4fe43Sopenharmony_ci##### 3.1.2.2.5 start vi 3781bd4fe43Sopenharmony_ci 3791bd4fe43Sopenharmony_ci通过SAMPLE_COMM_VI_StartVi接口实现启动vi功能,可参考 3801bd4fe43Sopenharmony_ci 3811bd4fe43Sopenharmony_ci**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/helloworld/smp/sample_lcd.c中**的 3821bd4fe43Sopenharmony_ci 3831bd4fe43Sopenharmony_ci**int SampleVioVpssVoMipi(void)**接口中的start vi部分,如下图所示: 3841bd4fe43Sopenharmony_ci 3851bd4fe43Sopenharmony_ci 3861bd4fe43Sopenharmony_ci 3871bd4fe43Sopenharmony_ci针对SAMPLE_COMM_VI_StartVi 调用的底层接口进行如下解释和说明: 3881bd4fe43Sopenharmony_ci 3891bd4fe43Sopenharmony_ciHI_S32 SAMPLE_COMM_VI_StartVi(SAMPLE_VI_CONFIG_S * pstViConfig)接口开启vi,包括SAMPLE_COMM_VI_StartMIPI()、SAMPLE_COMM_VI_SetParam()、SAMPLE_COMM_VI_CreateVi()、SAMPLE_COMM_VI_CreateIsp()等接口。 3901bd4fe43Sopenharmony_ci 3911bd4fe43Sopenharmony_ci这些接口都可以在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/platform/common/sample_comm_vi.c文件中找到 3921bd4fe43Sopenharmony_ci 3931bd4fe43Sopenharmony_ci**(1) SAMPLE_COMM_VI_StartMIPI()** 3941bd4fe43Sopenharmony_ci 3951bd4fe43Sopenharmony_ci该接口为初始化MIPI。 3961bd4fe43Sopenharmony_ci 3971bd4fe43Sopenharmony_ci**(2) SAMPLE_COMM_VI_SetParam()** 3981bd4fe43Sopenharmony_ci 3991bd4fe43Sopenharmony_ci该接口涉及到的关键接口HI_MPI_SYS_GetVIVPSSMode、HI_MPI_SYS_SetVIVPSSMode,下面逐一进行解读。 4001bd4fe43Sopenharmony_ci 4011bd4fe43Sopenharmony_ci以下接口可在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/include/mpi_sys.h文件中找到 4021bd4fe43Sopenharmony_ci 4031bd4fe43Sopenharmony_ci**HI_MPI_SYS_GetVIVPSSMode** 4041bd4fe43Sopenharmony_ci 4051bd4fe43Sopenharmony_ci【描述】 4061bd4fe43Sopenharmony_ci 4071bd4fe43Sopenharmony_ci获取VI、VPSS的工作模式 4081bd4fe43Sopenharmony_ci 4091bd4fe43Sopenharmony_ci【语法】 4101bd4fe43Sopenharmony_ci 4111bd4fe43Sopenharmony_ciHI_S32 HI_MPI_SYS_GetVIVPSSMode(VI_VPSS_MODE_S* pstVIVPSSMode); 4121bd4fe43Sopenharmony_ci 4131bd4fe43Sopenharmony_ci【参数】 4141bd4fe43Sopenharmony_ci 4151bd4fe43Sopenharmony_ci| 参数名称 | 描述 | 输入/输出 | 4161bd4fe43Sopenharmony_ci| ------------- | --------------- | --------- | 4171bd4fe43Sopenharmony_ci| pstVIVPSSMode | VI/VPSS工作模式 | 输出 | 4181bd4fe43Sopenharmony_ci 4191bd4fe43Sopenharmony_ci【返回值】 4201bd4fe43Sopenharmony_ci 4211bd4fe43Sopenharmony_ci 4221bd4fe43Sopenharmony_ci 4231bd4fe43Sopenharmony_ci【需求】 4241bd4fe43Sopenharmony_ci 4251bd4fe43Sopenharmony_ci* 头文件:hi_comm_sys.h、mpi_sys.h 4261bd4fe43Sopenharmony_ci 4271bd4fe43Sopenharmony_ci* 库文件:libmpi.a 4281bd4fe43Sopenharmony_ci 4291bd4fe43Sopenharmony_ci针对HI_MPI_SYS_GetVIVPSSMode接口的出参VI_VPSS_MODE_S结构体进行说明: 4301bd4fe43Sopenharmony_ci 4311bd4fe43Sopenharmony_ci**VI_VPSS_MODE_S** 4321bd4fe43Sopenharmony_ci 4331bd4fe43Sopenharmony_ci【说明】 4341bd4fe43Sopenharmony_ci 4351bd4fe43Sopenharmony_ci* 定义VI PIPE和VPSS组的工作模式 4361bd4fe43Sopenharmony_ci 4371bd4fe43Sopenharmony_ci【定义】 4381bd4fe43Sopenharmony_ci 4391bd4fe43Sopenharmony_ci 4401bd4fe43Sopenharmony_ci 4411bd4fe43Sopenharmony_ci【成员】 4421bd4fe43Sopenharmony_ci 4431bd4fe43Sopenharmony_ci 4441bd4fe43Sopenharmony_ci 4451bd4fe43Sopenharmony_ci【注意事项】 4461bd4fe43Sopenharmony_ci 4471bd4fe43Sopenharmony_ciHi3559AV100ES只支持VI_OFFLINE_VPSS_OFFLINE,VI_ONLINE_VPSS_OFFLINE,VI_PARALLEL_VPSS_OFFLINE三种模式 4481bd4fe43Sopenharmony_ci 4491bd4fe43Sopenharmony_ciVI_VPSS_MODE_S嵌套VI_VPSS_MODE_E结构体,对该枚举型结构体说明如下: 4501bd4fe43Sopenharmony_ci 4511bd4fe43Sopenharmony_ci**VI_VPSS_MODE_E** 4521bd4fe43Sopenharmony_ci 4531bd4fe43Sopenharmony_ci【说明】 4541bd4fe43Sopenharmony_ci 4551bd4fe43Sopenharmony_ci定义VI PIPE和VPSS组的工作模式。 4561bd4fe43Sopenharmony_ci 4571bd4fe43Sopenharmony_ci【定义】 4581bd4fe43Sopenharmony_ci 4591bd4fe43Sopenharmony_ci 4601bd4fe43Sopenharmony_ci 4611bd4fe43Sopenharmony_ci【成员】 4621bd4fe43Sopenharmony_ci 4631bd4fe43Sopenharmony_ci 4641bd4fe43Sopenharmony_ci 4651bd4fe43Sopenharmony_ci 4661bd4fe43Sopenharmony_ci 4671bd4fe43Sopenharmony_ci【注意事项】 4681bd4fe43Sopenharmony_ci 4691bd4fe43Sopenharmony_ci* VI_OFFLINE_VPSS_ONLINE,VI_ONLINE_VPSS_ONLINE,VI_PARALLEL_VPSS_PARALLEL模式下VI PIPE编号与VPSS GROUP号一一对应,数据从VI PIPE流动到VPSS GROUP,不需要软件设定绑定关系。 4701bd4fe43Sopenharmony_ci 4711bd4fe43Sopenharmony_ci**HI_MPI_SYS_SetVIVPSSMode** 4721bd4fe43Sopenharmony_ci 4731bd4fe43Sopenharmony_ci【描述】 4741bd4fe43Sopenharmony_ci 4751bd4fe43Sopenharmony_ci* 设置VI、VPSS工作模式。 4761bd4fe43Sopenharmony_ci 4771bd4fe43Sopenharmony_ci【语法】 4781bd4fe43Sopenharmony_ci 4791bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_SYS_SetVIVPSSMode(const VI_VPSS_MODE_S* pstVIVPSSMode); 4801bd4fe43Sopenharmony_ci 4811bd4fe43Sopenharmony_ci【参数】 4821bd4fe43Sopenharmony_ci 4831bd4fe43Sopenharmony_ci 4841bd4fe43Sopenharmony_ci 4851bd4fe43Sopenharmony_ci【返回值】 4861bd4fe43Sopenharmony_ci 4871bd4fe43Sopenharmony_ci 4881bd4fe43Sopenharmony_ci 4891bd4fe43Sopenharmony_ci【需求】 4901bd4fe43Sopenharmony_ci 4911bd4fe43Sopenharmony_ci* 头文件:hi_comm_sys.h、mpi_sys.h 4921bd4fe43Sopenharmony_ci 4931bd4fe43Sopenharmony_ci* 库文件:libmpi.a 4941bd4fe43Sopenharmony_ci 4951bd4fe43Sopenharmony_ci【注意】 4961bd4fe43Sopenharmony_ci 4971bd4fe43Sopenharmony_ci* 必须在HI_MPI_SYS_Init后,所有的VI PIPE和所有的VPSS组创建前设置。 4981bd4fe43Sopenharmony_ci 4991bd4fe43Sopenharmony_ci 5001bd4fe43Sopenharmony_ci 5011bd4fe43Sopenharmony_ci**(3) SAMPLE_COMM_VI_CreateVi()** 5021bd4fe43Sopenharmony_ci 5031bd4fe43Sopenharmony_ci以下接口可在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/include/mpi_vi.h文件中找到 5041bd4fe43Sopenharmony_ci 5051bd4fe43Sopenharmony_ci**HI_MPI_VI_SetDevAttr** 5061bd4fe43Sopenharmony_ci 5071bd4fe43Sopenharmony_ci【描述】 5081bd4fe43Sopenharmony_ci 5091bd4fe43Sopenharmony_ci* 设置VI设备属性。基本设备属性默认了部分芯片配置,满足大部分的sensor对接要求。 5101bd4fe43Sopenharmony_ci 5111bd4fe43Sopenharmony_ci【语法】 5121bd4fe43Sopenharmony_ci 5131bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VI_SetDevAttr(VI_DEV ViDev, const VI_DEV_ATTR_S *pstDevAttr); 5141bd4fe43Sopenharmony_ci 5151bd4fe43Sopenharmony_ci【参数】 5161bd4fe43Sopenharmony_ci 5171bd4fe43Sopenharmony_ci 5181bd4fe43Sopenharmony_ci 5191bd4fe43Sopenharmony_ci【返回值】 5201bd4fe43Sopenharmony_ci 5211bd4fe43Sopenharmony_ci 5221bd4fe43Sopenharmony_ci 5231bd4fe43Sopenharmony_ci【芯片差异】 5241bd4fe43Sopenharmony_ci 5251bd4fe43Sopenharmony_ci无。 5261bd4fe43Sopenharmony_ci 5271bd4fe43Sopenharmony_ci【需求】 5281bd4fe43Sopenharmony_ci 5291bd4fe43Sopenharmony_ci* 头文件: hi_comm_vi.h 、 mpi_vi.h 5301bd4fe43Sopenharmony_ci 5311bd4fe43Sopenharmony_ci* 库文件:libmpi.a 5321bd4fe43Sopenharmony_ci 5331bd4fe43Sopenharmony_ci【注意】 5341bd4fe43Sopenharmony_ci 5351bd4fe43Sopenharmony_ci* 不支持BT.1120隔行输入。 5361bd4fe43Sopenharmony_ci 5371bd4fe43Sopenharmony_ci* 在调用前要保证VI设备处于禁用状态。如果VI设备已处于使能状态,可以使用HI_MPI_VI_DisableDev来禁用设备 5381bd4fe43Sopenharmony_ci 5391bd4fe43Sopenharmony_ci* 参数pstDevAttr主要用来配置指定VI设备的视频接口模式,用于与外围camera、sensor或codec对接,支持的接口模式包括MIPI Rx(MIPI/LVDS/HISPI)、SLVS-EC。用户需要配置以下几类信息,具体属性意义参见**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiMPP媒体处理软件 V4.0 开发参考.pdf》3.6“数据类型”部分的说明: 5401bd4fe43Sopenharmony_ci * 接口模式信息:接口模式为MIPI Rx(MIPI/LVDS/HISPI)、SLVS-EC等模式 5411bd4fe43Sopenharmony_ci * 工作模式信息:1路、2路、4路复合模式 5421bd4fe43Sopenharmony_ci * 数据布局信息:复合模式下多路数据的排布 5431bd4fe43Sopenharmony_ci * 数据信息:逐行输入、YUV数据输入顺序 5441bd4fe43Sopenharmony_ci * 同步时序信息:垂直、水平同步信号的属性 5451bd4fe43Sopenharmony_ci 5461bd4fe43Sopenharmony_ci* WDR模式下不支持BAS功能。 5471bd4fe43Sopenharmony_ci 5481bd4fe43Sopenharmony_ci 5491bd4fe43Sopenharmony_ci 5501bd4fe43Sopenharmony_ci针对HI_MPI_VI_SetDevAttr 接口参数涉及到VI_DEV_ATTR_S结构体进行说明: 5511bd4fe43Sopenharmony_ci 5521bd4fe43Sopenharmony_ci以下结构体可在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/include/mpi_vi.h文件中找到 5531bd4fe43Sopenharmony_ci 5541bd4fe43Sopenharmony_ci**VI_DEV_ATTR_S** 5551bd4fe43Sopenharmony_ci 5561bd4fe43Sopenharmony_ci【说明】 5571bd4fe43Sopenharmony_ci 5581bd4fe43Sopenharmony_ci定义视频输入设备的属性 5591bd4fe43Sopenharmony_ci 5601bd4fe43Sopenharmony_ci【定义】 5611bd4fe43Sopenharmony_ci 5621bd4fe43Sopenharmony_ci 5631bd4fe43Sopenharmony_ci 5641bd4fe43Sopenharmony_ci【成员】 5651bd4fe43Sopenharmony_ci 5661bd4fe43Sopenharmony_ci 5671bd4fe43Sopenharmony_ci 5681bd4fe43Sopenharmony_ci 5691bd4fe43Sopenharmony_ci 5701bd4fe43Sopenharmony_ci 5711bd4fe43Sopenharmony_ci 5721bd4fe43Sopenharmony_ci【芯片差异】 5731bd4fe43Sopenharmony_ci 5741bd4fe43Sopenharmony_ci* 自行查阅**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiMPP媒体处理软件 V4.0 开发参考.pdf》VI_DEV_ATTR_S结构体芯片差异部分。 5751bd4fe43Sopenharmony_ci 5761bd4fe43Sopenharmony_ci【注意事项】 5771bd4fe43Sopenharmony_ci 5781bd4fe43Sopenharmony_ci* as32AdChnId为无效参数,推荐统一将数组as32AdChnId的值都设为-1 5791bd4fe43Sopenharmony_ci 5801bd4fe43Sopenharmony_ci* 不支持多路复合只有1路复合工作模式,必须设置为VI_WORK_MODE_1Multiplex,否则报错。 5811bd4fe43Sopenharmony_ci 5821bd4fe43Sopenharmony_ci* stSize中u32Width必须等于实际输入图像的宽度,u32Height必须等于实际输入图像的高度,否则会导致没有图像输出。 5831bd4fe43Sopenharmony_ci 5841bd4fe43Sopenharmony_ci* 只有DEV0支持DATA_RATE_X2。enDataRate的值需与mipi_data_rate_t(详情请参考MIPI章节)保持一致。 5851bd4fe43Sopenharmony_ci 5861bd4fe43Sopenharmony_ci* 并行模式时,必须配置enDataRate为DATA_RATE_X2。 5871bd4fe43Sopenharmony_ci 5881bd4fe43Sopenharmony_ci* DATA_RATE_X2通路配置:MIPI0配置为MIPI_DATA_RATE_X2,DEV0配置DATA_RATE_X2,DEV0绑定PIPE0,其他通路不支持。 5891bd4fe43Sopenharmony_ci 5901bd4fe43Sopenharmony_ci* 当接口模式为VI_MODE_MIPI_YUV420_NORMAL,VI_MODE_MIPI_YUV420_LEGACY,VI_MODE_MIPI_YUV422时bDataReverse必须为HI_FALSE,且掩码的设置必须为au32ComponentMask[0] = 0xFF000000,au32ComponentMask[1]= 0x00FF0000,即高8bit输入Y数据,低8bit输入C数据,否则会导致图像异常或无图像等现像。 5911bd4fe43Sopenharmony_ci 5921bd4fe43Sopenharmony_ci**HI_MPI_VI_EnableDev** 5931bd4fe43Sopenharmony_ci 5941bd4fe43Sopenharmony_ci【描述】 5951bd4fe43Sopenharmony_ci 5961bd4fe43Sopenharmony_ci* 启动VI设备 5971bd4fe43Sopenharmony_ci 5981bd4fe43Sopenharmony_ci【语法】 5991bd4fe43Sopenharmony_ci 6001bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VI_EnableDev(VI_DEV ViDev); 6011bd4fe43Sopenharmony_ci 6021bd4fe43Sopenharmony_ci【参数】 6031bd4fe43Sopenharmony_ci 6041bd4fe43Sopenharmony_ci 6051bd4fe43Sopenharmony_ci 6061bd4fe43Sopenharmony_ci【返回值】 6071bd4fe43Sopenharmony_ci 6081bd4fe43Sopenharmony_ci 6091bd4fe43Sopenharmony_ci 6101bd4fe43Sopenharmony_ci【芯片差异】 6111bd4fe43Sopenharmony_ci 6121bd4fe43Sopenharmony_ci* 无。 6131bd4fe43Sopenharmony_ci 6141bd4fe43Sopenharmony_ci【需求】 6151bd4fe43Sopenharmony_ci 6161bd4fe43Sopenharmony_ci* 头文件:hi_comm_vi.h、mpi_vi.h 6171bd4fe43Sopenharmony_ci 6181bd4fe43Sopenharmony_ci* 库文件:libmpi.a 6191bd4fe43Sopenharmony_ci 6201bd4fe43Sopenharmony_ci【注意】 6211bd4fe43Sopenharmony_ci 6221bd4fe43Sopenharmony_ci* 启用前必须已经设置设备属性,否则返回失败。 6231bd4fe43Sopenharmony_ci 6241bd4fe43Sopenharmony_ci* 可重复启用,不返回失败。 6251bd4fe43Sopenharmony_ci 6261bd4fe43Sopenharmony_ci* Hi3516DV300支持同时启动两个VI DEV。 6271bd4fe43Sopenharmony_ci 6281bd4fe43Sopenharmony_ci**HI_MPI_VI_SetDevBindPipe** 6291bd4fe43Sopenharmony_ci 6301bd4fe43Sopenharmony_ci【描述】 6311bd4fe43Sopenharmony_ci 6321bd4fe43Sopenharmony_ci* 设置VI设备与物理PIPE的绑定关系 6331bd4fe43Sopenharmony_ci 6341bd4fe43Sopenharmony_ci【语法】 6351bd4fe43Sopenharmony_ci 6361bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VI_SetDevBindPipe(VI_DEV ViDev, const VI_DEV_BIND_PIPE_S *pstDevBindPipe); 6371bd4fe43Sopenharmony_ci 6381bd4fe43Sopenharmony_ci【参数】 6391bd4fe43Sopenharmony_ci 6401bd4fe43Sopenharmony_ci 6411bd4fe43Sopenharmony_ci 6421bd4fe43Sopenharmony_ci【返回值】 6431bd4fe43Sopenharmony_ci 6441bd4fe43Sopenharmony_ci 6451bd4fe43Sopenharmony_ci 6461bd4fe43Sopenharmony_ci【芯片差异】 6471bd4fe43Sopenharmony_ci 6481bd4fe43Sopenharmony_ci* 无 6491bd4fe43Sopenharmony_ci 6501bd4fe43Sopenharmony_ci【需求】 6511bd4fe43Sopenharmony_ci 6521bd4fe43Sopenharmony_ci* 头文件:hi_comm_vi.h、mpi_vi.h 6531bd4fe43Sopenharmony_ci 6541bd4fe43Sopenharmony_ci* 库文件:libmpi.a 6551bd4fe43Sopenharmony_ci 6561bd4fe43Sopenharmony_ci 6571bd4fe43Sopenharmony_ci 6581bd4fe43Sopenharmony_ci针对HI_MPI_VI_SetDevBindPipe接口入参涉及的VI_DEV_BIND_PIPE_S进行如下说明: 6591bd4fe43Sopenharmony_ci 6601bd4fe43Sopenharmony_ci**VI_DEV_BIND_PIPE_S** 6611bd4fe43Sopenharmony_ci 6621bd4fe43Sopenharmony_ci【说明】 6631bd4fe43Sopenharmony_ci 6641bd4fe43Sopenharmony_ci* 定义 VI DEV 与 PIPE 的绑定关系。 6651bd4fe43Sopenharmony_ci 6661bd4fe43Sopenharmony_ci【定义】 6671bd4fe43Sopenharmony_ci 6681bd4fe43Sopenharmony_ci 6691bd4fe43Sopenharmony_ci 6701bd4fe43Sopenharmony_ci【成员】 6711bd4fe43Sopenharmony_ci 6721bd4fe43Sopenharmony_ci 6731bd4fe43Sopenharmony_ci 6741bd4fe43Sopenharmony_ci【注意】 6751bd4fe43Sopenharmony_ci 6761bd4fe43Sopenharmony_ci* 无。 6771bd4fe43Sopenharmony_ci 6781bd4fe43Sopenharmony_ci**HI_MPI_VI_CreatePipe** 6791bd4fe43Sopenharmony_ci 6801bd4fe43Sopenharmony_ci【描述】 6811bd4fe43Sopenharmony_ci 6821bd4fe43Sopenharmony_ci* 创建一个VI PIPE 6831bd4fe43Sopenharmony_ci 6841bd4fe43Sopenharmony_ci【语法】 6851bd4fe43Sopenharmony_ci 6861bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VI_CreatePipe(VI_PIPE ViPipe, const VI_PIPE_ATTR_S *pstPipeAttr); 6871bd4fe43Sopenharmony_ci 6881bd4fe43Sopenharmony_ci【参数】 6891bd4fe43Sopenharmony_ci 6901bd4fe43Sopenharmony_ci 6911bd4fe43Sopenharmony_ci 6921bd4fe43Sopenharmony_ci【返回值】 6931bd4fe43Sopenharmony_ci 6941bd4fe43Sopenharmony_ci 6951bd4fe43Sopenharmony_ci 6961bd4fe43Sopenharmony_ci【芯片差异】 6971bd4fe43Sopenharmony_ci 6981bd4fe43Sopenharmony_ci* 自行查阅**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiMPP媒体处理软件 V4.0 开发参考.pdf》HI_MPI_VI_CreatePipe芯片差异部分。 6991bd4fe43Sopenharmony_ci 7001bd4fe43Sopenharmony_ci【需求】 7011bd4fe43Sopenharmony_ci 7021bd4fe43Sopenharmony_ci* 头文件:hi_comm_vi.h、mpi_vi.h 7031bd4fe43Sopenharmony_ci 7041bd4fe43Sopenharmony_ci* 库文件:libmpi.a 7051bd4fe43Sopenharmony_ci 7061bd4fe43Sopenharmony_ci【注意】 7071bd4fe43Sopenharmony_ci 7081bd4fe43Sopenharmony_ci* 只有PIPE0支持并行模式。 7091bd4fe43Sopenharmony_ci 7101bd4fe43Sopenharmony_ci* 物理PIPE属性中的u32MaxW、u32MaxH、enPixFmt、enBitWidth等必须与前端进入VI的时序设置保持一致,否则会出现错误。 7111bd4fe43Sopenharmony_ci 7121bd4fe43Sopenharmony_ci* 不支持重复创建。 7131bd4fe43Sopenharmony_ci 7141bd4fe43Sopenharmony_ci* 当VI离线且输入图像大于4096时,不支持压缩。 7151bd4fe43Sopenharmony_ci 7161bd4fe43Sopenharmony_ci* WDR模式下需要创建多个物理PIPE绑定到同一个开了WDR的设备上,当进行切换时,需要把所有绑定到该设备的物理PIPE销毁再重建。不能使用上次使用过而未销毁的物理PIPE,否则可能造成错误。 7171bd4fe43Sopenharmony_ci 7181bd4fe43Sopenharmony_ci 7191bd4fe43Sopenharmony_ci 7201bd4fe43Sopenharmony_ci针对HI_MPI_VI_CreatePipe接口中入参VI_PIPE_ATTR_S结构体进行如下说明: 7211bd4fe43Sopenharmony_ci 7221bd4fe43Sopenharmony_ci**VI_PIPE_ATTR_S** 7231bd4fe43Sopenharmony_ci 7241bd4fe43Sopenharmony_ci【描述】 7251bd4fe43Sopenharmony_ci 7261bd4fe43Sopenharmony_ci* 设置VI PIPE属性 7271bd4fe43Sopenharmony_ci 7281bd4fe43Sopenharmony_ci【定义】 7291bd4fe43Sopenharmony_ci 7301bd4fe43Sopenharmony_ci 7311bd4fe43Sopenharmony_ci 7321bd4fe43Sopenharmony_ci【成员】 7331bd4fe43Sopenharmony_ci 7341bd4fe43Sopenharmony_ci 7351bd4fe43Sopenharmony_ci 7361bd4fe43Sopenharmony_ci<img src="./figures/hispark_taurus_helloworld_sample/058VI_PIPE_ATTR_S%E6%88%90%E5%91%98.png" style="zoom:130%;" /> 7371bd4fe43Sopenharmony_ci 7381bd4fe43Sopenharmony_ci 7391bd4fe43Sopenharmony_ci 7401bd4fe43Sopenharmony_ci【芯片差异】 7411bd4fe43Sopenharmony_ci 7421bd4fe43Sopenharmony_ci* 自行查阅**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiMPP媒体处理软件 V4.0 开发参考.pdf》VI_PIPE_ATTR_S结构体芯片差异内容。 7431bd4fe43Sopenharmony_ci 7441bd4fe43Sopenharmony_ci【注意事项】 7451bd4fe43Sopenharmony_ci 7461bd4fe43Sopenharmony_ci* 自行查阅**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiMPP媒体处理软件 V4.0 开发参考.pdf》VI_PIPE_ATTR_S结构体注意事项内容。 7471bd4fe43Sopenharmony_ci 7481bd4fe43Sopenharmony_ci**HI_MPI_VI_SetPipeVCNumber** 7491bd4fe43Sopenharmony_ci 7501bd4fe43Sopenharmony_ci【描述】 7511bd4fe43Sopenharmony_ci 7521bd4fe43Sopenharmony_ci* 设置VI物理PIPE对接前端sensor或者AD的VC号。 7531bd4fe43Sopenharmony_ci 7541bd4fe43Sopenharmony_ci【语法】 7551bd4fe43Sopenharmony_ci 7561bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VI_SetPipeVCNumber(VI_PIPE ViPipe, HI_U32 u32VCNumber); 7571bd4fe43Sopenharmony_ci 7581bd4fe43Sopenharmony_ci【参数】 7591bd4fe43Sopenharmony_ci 7601bd4fe43Sopenharmony_ci 7611bd4fe43Sopenharmony_ci 7621bd4fe43Sopenharmony_ci【返回值】 7631bd4fe43Sopenharmony_ci 7641bd4fe43Sopenharmony_ci 7651bd4fe43Sopenharmony_ci 7661bd4fe43Sopenharmony_ci【芯片差异】 7671bd4fe43Sopenharmony_ci 7681bd4fe43Sopenharmony_ci* 无。 7691bd4fe43Sopenharmony_ci 7701bd4fe43Sopenharmony_ci【需求】 7711bd4fe43Sopenharmony_ci 7721bd4fe43Sopenharmony_ci* 头文件:mpi_vi.h 7731bd4fe43Sopenharmony_ci 7741bd4fe43Sopenharmony_ci【注意】 7751bd4fe43Sopenharmony_ci 7761bd4fe43Sopenharmony_ci* 必须在 PIPE 创建后,使能之前调用。 7771bd4fe43Sopenharmony_ci 7781bd4fe43Sopenharmony_ci* 虚拟 PIPE 不支持。 7791bd4fe43Sopenharmony_ci 7801bd4fe43Sopenharmony_ci 7811bd4fe43Sopenharmony_ci 7821bd4fe43Sopenharmony_ci**HI_MPI_VI_DestroyPipe** 7831bd4fe43Sopenharmony_ci 7841bd4fe43Sopenharmony_ci【描述】 7851bd4fe43Sopenharmony_ci 7861bd4fe43Sopenharmony_ci* 销毁一个VI PIPE 7871bd4fe43Sopenharmony_ci 7881bd4fe43Sopenharmony_ci【语法】 7891bd4fe43Sopenharmony_ci 7901bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VI_DestroyPipe(VI_PIPE ViPipe); 7911bd4fe43Sopenharmony_ci 7921bd4fe43Sopenharmony_ci【参数】 7931bd4fe43Sopenharmony_ci 7941bd4fe43Sopenharmony_ci 7951bd4fe43Sopenharmony_ci 7961bd4fe43Sopenharmony_ci【返回值】 7971bd4fe43Sopenharmony_ci 7981bd4fe43Sopenharmony_ci 7991bd4fe43Sopenharmony_ci 8001bd4fe43Sopenharmony_ci【芯片差异】 8011bd4fe43Sopenharmony_ci 8021bd4fe43Sopenharmony_ci* 无。 8031bd4fe43Sopenharmony_ci 8041bd4fe43Sopenharmony_ci【需求】 8051bd4fe43Sopenharmony_ci 8061bd4fe43Sopenharmony_ci* 头文件:hi_comm.h、mpi_vi.h 8071bd4fe43Sopenharmony_ci 8081bd4fe43Sopenharmony_ci【注意】 8091bd4fe43Sopenharmony_ci 8101bd4fe43Sopenharmony_ci* 使用本接口前,需先调用HI_MPI_VI_StopPipe(ViPipe)停止PIPE,否则提示失败。 8111bd4fe43Sopenharmony_ci* 在未创建PIPE或重复销毁PIPE时,调用本接口,将提示PIPE不存在。 8121bd4fe43Sopenharmony_ci 8131bd4fe43Sopenharmony_ci 8141bd4fe43Sopenharmony_ci 8151bd4fe43Sopenharmony_ci**HI_MPI_VI_StartPipe** 8161bd4fe43Sopenharmony_ci 8171bd4fe43Sopenharmony_ci【配置】 8181bd4fe43Sopenharmony_ci 8191bd4fe43Sopenharmony_ci* 启用VI PIPE 8201bd4fe43Sopenharmony_ci 8211bd4fe43Sopenharmony_ci【语法】 8221bd4fe43Sopenharmony_ci 8231bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VI_StartPipe(VI_PIPE ViPipe); 8241bd4fe43Sopenharmony_ci 8251bd4fe43Sopenharmony_ci【参数】 8261bd4fe43Sopenharmony_ci 8271bd4fe43Sopenharmony_ci 8281bd4fe43Sopenharmony_ci 8291bd4fe43Sopenharmony_ci【返回值】 8301bd4fe43Sopenharmony_ci 8311bd4fe43Sopenharmony_ci 8321bd4fe43Sopenharmony_ci 8331bd4fe43Sopenharmony_ci【芯片差异】 8341bd4fe43Sopenharmony_ci 8351bd4fe43Sopenharmony_ci* 无 8361bd4fe43Sopenharmony_ci 8371bd4fe43Sopenharmony_ci【需求】 8381bd4fe43Sopenharmony_ci 8391bd4fe43Sopenharmony_ci* 头文件:hi_comm_vi.h、mpi_vi.h 8401bd4fe43Sopenharmony_ci 8411bd4fe43Sopenharmony_ci* 库文件:libmpi.a 8421bd4fe43Sopenharmony_ci 8431bd4fe43Sopenharmony_ci【注意】 8441bd4fe43Sopenharmony_ci 8451bd4fe43Sopenharmony_ci* PIPE必须已创建 8461bd4fe43Sopenharmony_ci* 重复调用该函数设置同一个PIPE返回成功。 8471bd4fe43Sopenharmony_ci 8481bd4fe43Sopenharmony_ci 8491bd4fe43Sopenharmony_ci 8501bd4fe43Sopenharmony_ci**HI_MPI_VI_SetChnAttr** 8511bd4fe43Sopenharmony_ci 8521bd4fe43Sopenharmony_ci【描述】 8531bd4fe43Sopenharmony_ci 8541bd4fe43Sopenharmony_ci* 设置VI通道属性 8551bd4fe43Sopenharmony_ci 8561bd4fe43Sopenharmony_ci【语法】 8571bd4fe43Sopenharmony_ci 8581bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VI_SetChnAttr(VI_PIPE ViPipe, VI_CHN ViChn, const VI_CHN_ATTR_S *pstChnAttr); 8591bd4fe43Sopenharmony_ci 8601bd4fe43Sopenharmony_ci【参数】 8611bd4fe43Sopenharmony_ci 8621bd4fe43Sopenharmony_ci 8631bd4fe43Sopenharmony_ci 8641bd4fe43Sopenharmony_ci【返回值】 8651bd4fe43Sopenharmony_ci 8661bd4fe43Sopenharmony_ci 8671bd4fe43Sopenharmony_ci 8681bd4fe43Sopenharmony_ci【芯片差异】 8691bd4fe43Sopenharmony_ci 8701bd4fe43Sopenharmony_ci* 自行查阅**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiMPP媒体处理软件 V4.0 开发参考.pdf》中的HI_MPI_VI_SetChnAttr芯片差异内容。 8711bd4fe43Sopenharmony_ci 8721bd4fe43Sopenharmony_ci【注意事项】 8731bd4fe43Sopenharmony_ci 8741bd4fe43Sopenharmony_ci* 自行查阅**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiMPP媒体处理软件 V4.0 开发参考.pdf》中的HI_MPI_VI_SetChnAttr注意事项内容。 8751bd4fe43Sopenharmony_ci 8761bd4fe43Sopenharmony_ci 8771bd4fe43Sopenharmony_ci 8781bd4fe43Sopenharmony_ci**HI_MPI_VI_EnableChn** 8791bd4fe43Sopenharmony_ci 8801bd4fe43Sopenharmony_ci【描述】 8811bd4fe43Sopenharmony_ci 8821bd4fe43Sopenharmony_ci* 启动VI通道 8831bd4fe43Sopenharmony_ci 8841bd4fe43Sopenharmony_ci【语法】 8851bd4fe43Sopenharmony_ci 8861bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VI_EnableChn(VI_PIPE ViPipe, VI_CHN ViChn); 8871bd4fe43Sopenharmony_ci 8881bd4fe43Sopenharmony_ci【参数】 8891bd4fe43Sopenharmony_ci 8901bd4fe43Sopenharmony_ci 8911bd4fe43Sopenharmony_ci 8921bd4fe43Sopenharmony_ci【返回值】 8931bd4fe43Sopenharmony_ci 8941bd4fe43Sopenharmony_ci 8951bd4fe43Sopenharmony_ci 8961bd4fe43Sopenharmony_ci【芯片差异】 8971bd4fe43Sopenharmony_ci 8981bd4fe43Sopenharmony_ci* 无 8991bd4fe43Sopenharmony_ci 9001bd4fe43Sopenharmony_ci【需求】 9011bd4fe43Sopenharmony_ci 9021bd4fe43Sopenharmony_ci* 头文件:hi_comm_vi.h、mpi_vi.h 9031bd4fe43Sopenharmony_ci 9041bd4fe43Sopenharmony_ci* 库文件:libmpi.h 9051bd4fe43Sopenharmony_ci 9061bd4fe43Sopenharmony_ci【注意】 9071bd4fe43Sopenharmony_ci 9081bd4fe43Sopenharmony_ci* PIPE必须已创建,否则会返回失败。 9091bd4fe43Sopenharmony_ci* 必须先设置通道属性。 9101bd4fe43Sopenharmony_ci* 若启用扩展通道,则必须保证此通道绑定的源物理通道已经使能,否则返回失败错误码。 9111bd4fe43Sopenharmony_ci* 可重复启用VI通道,不返回失败。 9121bd4fe43Sopenharmony_ci* VI在线VPSS在线模式、VI 离线VPSS在线模式,VI并行VPSS并行模式下,启动VI通道不生效,直接返回成功。 9131bd4fe43Sopenharmony_ci 9141bd4fe43Sopenharmony_ci 9151bd4fe43Sopenharmony_ci 9161bd4fe43Sopenharmony_ci**HI_MPI_VI_StopPipe** 9171bd4fe43Sopenharmony_ci 9181bd4fe43Sopenharmony_ci【描述】 9191bd4fe43Sopenharmony_ci 9201bd4fe43Sopenharmony_ci* 禁用VI PIPE。 9211bd4fe43Sopenharmony_ci 9221bd4fe43Sopenharmony_ci【语法】 9231bd4fe43Sopenharmony_ci 9241bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VI_StopPipe(VI_PIPE ViPipe); 9251bd4fe43Sopenharmony_ci 9261bd4fe43Sopenharmony_ci【参数】 9271bd4fe43Sopenharmony_ci 9281bd4fe43Sopenharmony_ci 9291bd4fe43Sopenharmony_ci 9301bd4fe43Sopenharmony_ci【返回值】 9311bd4fe43Sopenharmony_ci 9321bd4fe43Sopenharmony_ci 9331bd4fe43Sopenharmony_ci 9341bd4fe43Sopenharmony_ci【芯片差异】 9351bd4fe43Sopenharmony_ci 9361bd4fe43Sopenharmony_ci* 无。 9371bd4fe43Sopenharmony_ci 9381bd4fe43Sopenharmony_ci【需求】 9391bd4fe43Sopenharmony_ci 9401bd4fe43Sopenharmony_ci* 头文件:hi_comm_vi.h、mpi_vi.h 9411bd4fe43Sopenharmony_ci 9421bd4fe43Sopenharmony_ci【注意】 9431bd4fe43Sopenharmony_ci 9441bd4fe43Sopenharmony_ci* PIPE必须已创建。 9451bd4fe43Sopenharmony_ci 9461bd4fe43Sopenharmony_ci* 重复调用该函数设置同一个PIPE返回成功。 9471bd4fe43Sopenharmony_ci 9481bd4fe43Sopenharmony_ci 9491bd4fe43Sopenharmony_ci 9501bd4fe43Sopenharmony_ci**HI_MPI_VI_DisableDev** 9511bd4fe43Sopenharmony_ci 9521bd4fe43Sopenharmony_ci【描述】 9531bd4fe43Sopenharmony_ci 9541bd4fe43Sopenharmony_ci* 禁用VI设备。 9551bd4fe43Sopenharmony_ci 9561bd4fe43Sopenharmony_ci【语法】 9571bd4fe43Sopenharmony_ci 9581bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VI_DisableDev(VI_DEV ViDev); 9591bd4fe43Sopenharmony_ci 9601bd4fe43Sopenharmony_ci【参数】 9611bd4fe43Sopenharmony_ci 9621bd4fe43Sopenharmony_ci 9631bd4fe43Sopenharmony_ci 9641bd4fe43Sopenharmony_ci【返回值】 9651bd4fe43Sopenharmony_ci 9661bd4fe43Sopenharmony_ci 9671bd4fe43Sopenharmony_ci 9681bd4fe43Sopenharmony_ci【芯片差异】 9691bd4fe43Sopenharmony_ci 9701bd4fe43Sopenharmony_ci* 无。 9711bd4fe43Sopenharmony_ci 9721bd4fe43Sopenharmony_ci【需求】 9731bd4fe43Sopenharmony_ci 9741bd4fe43Sopenharmony_ci* 头文件:hi_comm_vi.h、mpi_vi.h 9751bd4fe43Sopenharmony_ci 9761bd4fe43Sopenharmony_ci* 库文件:libmpi.a 9771bd4fe43Sopenharmony_ci 9781bd4fe43Sopenharmony_ci【注意】 9791bd4fe43Sopenharmony_ci 9801bd4fe43Sopenharmony_ci* 需先销毁所有与该VI设备绑定的物理PIPE后,再禁用VI设备 9811bd4fe43Sopenharmony_ci 9821bd4fe43Sopenharmony_ci* 可重复禁用,不返回失败。 9831bd4fe43Sopenharmony_ci 9841bd4fe43Sopenharmony_ci* 支持低功耗处理,禁用VI设备后将完全关闭该设备,需要重新设置属性,才能使能VI设备。 9851bd4fe43Sopenharmony_ci 9861bd4fe43Sopenharmony_ci 9871bd4fe43Sopenharmony_ci 9881bd4fe43Sopenharmony_ci**HI_MPI_VI_DisableChn** 9891bd4fe43Sopenharmony_ci 9901bd4fe43Sopenharmony_ci【描述】 9911bd4fe43Sopenharmony_ci 9921bd4fe43Sopenharmony_ci* 禁用VI通道。 9931bd4fe43Sopenharmony_ci 9941bd4fe43Sopenharmony_ci【语法】 9951bd4fe43Sopenharmony_ci 9961bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_VI_DisableChn(VI_PIPE ViPipe, VI_CHN ViChn); 9971bd4fe43Sopenharmony_ci 9981bd4fe43Sopenharmony_ci【参数】 9991bd4fe43Sopenharmony_ci 10001bd4fe43Sopenharmony_ci 10011bd4fe43Sopenharmony_ci 10021bd4fe43Sopenharmony_ci【返回值】 10031bd4fe43Sopenharmony_ci 10041bd4fe43Sopenharmony_ci 10051bd4fe43Sopenharmony_ci 10061bd4fe43Sopenharmony_ci【芯片差异】 10071bd4fe43Sopenharmony_ci 10081bd4fe43Sopenharmony_ci* 无。 10091bd4fe43Sopenharmony_ci 10101bd4fe43Sopenharmony_ci【需求】 10111bd4fe43Sopenharmony_ci 10121bd4fe43Sopenharmony_ci* 头文件:hi_comm_vi.h、mpi_vi.h 10131bd4fe43Sopenharmony_ci 10141bd4fe43Sopenharmony_ci* 库文件:libmpi.a 10151bd4fe43Sopenharmony_ci 10161bd4fe43Sopenharmony_ci【注意】 10171bd4fe43Sopenharmony_ci 10181bd4fe43Sopenharmony_ci* PIPE必须已创建,否则会返回失败。 10191bd4fe43Sopenharmony_ci 10201bd4fe43Sopenharmony_ci* 若禁用物理通道,则必须保证此通道绑定的扩展通道已经全部禁用,否则返回失败的错误码。 10211bd4fe43Sopenharmony_ci 10221bd4fe43Sopenharmony_ci* 可重复禁用VI通道,不返回失败。 10231bd4fe43Sopenharmony_ci 10241bd4fe43Sopenharmony_ci* VI在线VPSS在线模式、VI离线VPSS在线模式,VI并行VPSS并行模式下,禁用VI通道不生效,直接返回成功。 10251bd4fe43Sopenharmony_ci 10261bd4fe43Sopenharmony_ci 10271bd4fe43Sopenharmony_ci 10281bd4fe43Sopenharmony_ci**SAMPLE_COMM_VI_CreateIsp** 10291bd4fe43Sopenharmony_ci 10301bd4fe43Sopenharmony_ciISP通过一系列数字图像处理算法完成对数字图像的效果处理。主要包括3A、坏点校正、去噪、强光抑制、背光补偿、色彩增强、镜头阴影校正等处理。 10311bd4fe43Sopenharmony_ci 10321bd4fe43Sopenharmony_ciISP包括逻辑部分以及运行在其上的firmware ISP部分底层接口优先参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiISP 开发参考.pdf》指导手册,针对SAMPLE_COMM_VI_CreateIsp用到关键底层接口做如下说明: 10331bd4fe43Sopenharmony_ci 10341bd4fe43Sopenharmony_ci**注:下文涉及的所有AE库接口都只是针对上海海思AE库,如果客户自己实现AE库,不需要关注这些接口,且无法使用这些接口。所有AWB库接口都只是针对上海海思AWB库,如果客户自己实现AWB库,不需要关注这些接口,且无法使用这些接口。** 10351bd4fe43Sopenharmony_ci 10361bd4fe43Sopenharmony_ci以下接口可以在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/include/mpi_isp.h文件中找到 10371bd4fe43Sopenharmony_ci 10381bd4fe43Sopenharmony_ci**HI_MPI_ISP_MemInit** 10391bd4fe43Sopenharmony_ci 10401bd4fe43Sopenharmony_ci【描述】 10411bd4fe43Sopenharmony_ci 10421bd4fe43Sopenharmony_ci* 初始化ISP外部寄存器 10431bd4fe43Sopenharmony_ci 10441bd4fe43Sopenharmony_ci【语法】 10451bd4fe43Sopenharmony_ci 10461bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_ISP_MemInit(VI_PIPE ViPipe); 10471bd4fe43Sopenharmony_ci 10481bd4fe43Sopenharmony_ci【参数】 10491bd4fe43Sopenharmony_ci 10501bd4fe43Sopenharmony_ci 10511bd4fe43Sopenharmony_ci 10521bd4fe43Sopenharmony_ci【返回值】 10531bd4fe43Sopenharmony_ci 10541bd4fe43Sopenharmony_ci 10551bd4fe43Sopenharmony_ci 10561bd4fe43Sopenharmony_ci【需求】 10571bd4fe43Sopenharmony_ci 10581bd4fe43Sopenharmony_ci* 头文件:hi_comm_isp.h、mpi_isp.h 10591bd4fe43Sopenharmony_ci 10601bd4fe43Sopenharmony_ci* 库文件:libisp.a 10611bd4fe43Sopenharmony_ci 10621bd4fe43Sopenharmony_ci【注意事项】 10631bd4fe43Sopenharmony_ci 10641bd4fe43Sopenharmony_ci* 自行查阅**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiISP 开发参考.pdf》指导手册中的HI_MPI_ISP_MemInit结构体注意事项内容。 10651bd4fe43Sopenharmony_ci 10661bd4fe43Sopenharmony_ci**HI_MPI_ISP_Init** 10671bd4fe43Sopenharmony_ci 10681bd4fe43Sopenharmony_ci【描述】 10691bd4fe43Sopenharmony_ci 10701bd4fe43Sopenharmony_ci* 初始化ISP firmware 10711bd4fe43Sopenharmony_ci 10721bd4fe43Sopenharmony_ci【语法】 10731bd4fe43Sopenharmony_ci 10741bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_ISP_Init(VI_PIPE ViPipe); 10751bd4fe43Sopenharmony_ci 10761bd4fe43Sopenharmony_ci【参数】 10771bd4fe43Sopenharmony_ci 10781bd4fe43Sopenharmony_ci 10791bd4fe43Sopenharmony_ci 10801bd4fe43Sopenharmony_ci【返回值】 10811bd4fe43Sopenharmony_ci 10821bd4fe43Sopenharmony_ci 10831bd4fe43Sopenharmony_ci 10841bd4fe43Sopenharmony_ci【需求】 10851bd4fe43Sopenharmony_ci 10861bd4fe43Sopenharmony_ci* 头文件:hi_comm_isp.h、mpi_isp.h 10871bd4fe43Sopenharmony_ci 10881bd4fe43Sopenharmony_ci* 库文件:libisp.a 10891bd4fe43Sopenharmony_ci 10901bd4fe43Sopenharmony_ci【注意】 10911bd4fe43Sopenharmony_ci 10921bd4fe43Sopenharmony_ci* 自行参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiISP 开发参考.pdf》指导手册中的HI_MPI_ISP_Init注意事项内容。 10931bd4fe43Sopenharmony_ci 10941bd4fe43Sopenharmony_ci 10951bd4fe43Sopenharmony_ci 10961bd4fe43Sopenharmony_ci**HI_MPI_ISP_Exit** 10971bd4fe43Sopenharmony_ci 10981bd4fe43Sopenharmony_ci【描述】 10991bd4fe43Sopenharmony_ci 11001bd4fe43Sopenharmony_ci* 退出ISP firmware 11011bd4fe43Sopenharmony_ci 11021bd4fe43Sopenharmony_ci【语法】 11031bd4fe43Sopenharmony_ci 11041bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_ISP_Exit(VI_PIPE ViPipe); 11051bd4fe43Sopenharmony_ci 11061bd4fe43Sopenharmony_ci【参数】 11071bd4fe43Sopenharmony_ci 11081bd4fe43Sopenharmony_ci 11091bd4fe43Sopenharmony_ci 11101bd4fe43Sopenharmony_ci【返回值】 11111bd4fe43Sopenharmony_ci 11121bd4fe43Sopenharmony_ci 11131bd4fe43Sopenharmony_ci 11141bd4fe43Sopenharmony_ci【需求】 11151bd4fe43Sopenharmony_ci 11161bd4fe43Sopenharmony_ci* 头文件:hi_comm_isp.h、mpi_isp.h 11171bd4fe43Sopenharmony_ci 11181bd4fe43Sopenharmony_ci* 库文件:libisp.a 11191bd4fe43Sopenharmony_ci 11201bd4fe43Sopenharmony_ci【注意】 11211bd4fe43Sopenharmony_ci 11221bd4fe43Sopenharmony_ci* 调用HI_MPI_ISP_Init和HI_MPI_ISP_Run之后,再调用本接口退出ISP firmware。 11231bd4fe43Sopenharmony_ci 11241bd4fe43Sopenharmony_ci* 不支持多进程,必须要与 sensor_register_callback、HI_MPI_AE_Register、HI_MPI_AWB_Register、HI_MPI_ISP_MemInit、HI_MPI_ISP_Init、HI_MPI_ISP_Run 接口在同一个进程调用。 11251bd4fe43Sopenharmony_ci 11261bd4fe43Sopenharmony_ci* 支持重复调用本接口。 11271bd4fe43Sopenharmony_ci 11281bd4fe43Sopenharmony_ci* 在拼接模式时,必须先退出主pipe,后退出其他pipe。 11291bd4fe43Sopenharmony_ci 11301bd4fe43Sopenharmony_ci* 不支持相同ViPipe时,多线程执行ISP创建和销毁(多线程同时调用sensor_register_callback、HI_MPI_AE_Register、HI_MPI_AWB_Register、HI_MPI_ISP_MemInit、HI_MPI_ISP_Init、HI_MPI_ISP_Exit) 11311bd4fe43Sopenharmony_ci 11321bd4fe43Sopenharmony_ci* 推荐调用 HI_MPI_ISP_Init 之后,在调用本接口。 11331bd4fe43Sopenharmony_ci 11341bd4fe43Sopenharmony_ci 11351bd4fe43Sopenharmony_ci 11361bd4fe43Sopenharmony_ci**HI_MPI_ISP_SetPubAttr** 11371bd4fe43Sopenharmony_ci 11381bd4fe43Sopenharmony_ci【描述】 11391bd4fe43Sopenharmony_ci 11401bd4fe43Sopenharmony_ci* 设置 ISP 公共属性。 11411bd4fe43Sopenharmony_ci 11421bd4fe43Sopenharmony_ci【语法】 11431bd4fe43Sopenharmony_ci 11441bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_ISP_SetPubAttr(VI_PIPE ViPipe, const ISP_PUB_ATTR_S *pstPubAttr); 11451bd4fe43Sopenharmony_ci 11461bd4fe43Sopenharmony_ci【参数】 11471bd4fe43Sopenharmony_ci 11481bd4fe43Sopenharmony_ci 11491bd4fe43Sopenharmony_ci 11501bd4fe43Sopenharmony_ci【返回值】 11511bd4fe43Sopenharmony_ci 11521bd4fe43Sopenharmony_ci 11531bd4fe43Sopenharmony_ci 11541bd4fe43Sopenharmony_ci【需求】 11551bd4fe43Sopenharmony_ci 11561bd4fe43Sopenharmony_ci* 头文件:hi_comm_isp.h、mpi_isp.h 11571bd4fe43Sopenharmony_ci 11581bd4fe43Sopenharmony_ci* 库文件:libisp.a 11591bd4fe43Sopenharmony_ci 11601bd4fe43Sopenharmony_ci【注意】 11611bd4fe43Sopenharmony_ci 11621bd4fe43Sopenharmony_ci* 自行参考**源码的device/soc/hisilicon/hi3516dv300/sdk_linux/sample/doc中**的《HiISP 开发参考.pdf》HI_MPI_ISP_SetPubAttr中的注意内容。 11631bd4fe43Sopenharmony_ci 11641bd4fe43Sopenharmony_ci 11651bd4fe43Sopenharmony_ci 11661bd4fe43Sopenharmony_ci**HI_MPI_ISP_Run** 11671bd4fe43Sopenharmony_ci 11681bd4fe43Sopenharmony_ci【描述】 11691bd4fe43Sopenharmony_ci 11701bd4fe43Sopenharmony_ci* 运行ISP firmware 11711bd4fe43Sopenharmony_ci 11721bd4fe43Sopenharmony_ci【语法】 11731bd4fe43Sopenharmony_ci 11741bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_ISP_Run(VI_PIPE ViPipe); 11751bd4fe43Sopenharmony_ci 11761bd4fe43Sopenharmony_ci【参数】 11771bd4fe43Sopenharmony_ci 11781bd4fe43Sopenharmony_ci 11791bd4fe43Sopenharmony_ci 11801bd4fe43Sopenharmony_ci【返回值】 11811bd4fe43Sopenharmony_ci 11821bd4fe43Sopenharmony_ci 11831bd4fe43Sopenharmony_ci 11841bd4fe43Sopenharmony_ci【需求】 11851bd4fe43Sopenharmony_ci 11861bd4fe43Sopenharmony_ci* 头文件:hi_comm_isp.h、mpi_isp.h 11871bd4fe43Sopenharmony_ci 11881bd4fe43Sopenharmony_ci* 库文件:libisp.a 11891bd4fe43Sopenharmony_ci 11901bd4fe43Sopenharmony_ci【注意】 11911bd4fe43Sopenharmony_ci 11921bd4fe43Sopenharmony_ci* 运行前需要确保sensor已经初始化,并且向ISP注册了回调函数。 11931bd4fe43Sopenharmony_ci 11941bd4fe43Sopenharmony_ci* 运行前需要确保已调用HI_MPI_ISP_Init初始化ISP 11951bd4fe43Sopenharmony_ci 11961bd4fe43Sopenharmony_ci* 不支持多进程,必须要与sensor_register_callback、HI_MPI_AE_Register、HI_MPI_AWB_Register、HI_MPI_ISP_MemInit、HI_MPI_ISP_Init、HI_MPI_ISP_Exit接口在同一个进程调用。 11971bd4fe43Sopenharmony_ci 11981bd4fe43Sopenharmony_ci* 该接口是阻塞接口,建议用户采用实时线程处理。 11991bd4fe43Sopenharmony_ci 12001bd4fe43Sopenharmony_ci 12011bd4fe43Sopenharmony_ci 12021bd4fe43Sopenharmony_ci此接口可以在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/include/mpi_awb.h文件中找到 12031bd4fe43Sopenharmony_ci 12041bd4fe43Sopenharmony_ci**HI_MPI_AWB_UnRegister** 12051bd4fe43Sopenharmony_ci 12061bd4fe43Sopenharmony_ci【描述】 12071bd4fe43Sopenharmony_ci 12081bd4fe43Sopenharmony_ci* 向ISP注消AWB库。 12091bd4fe43Sopenharmony_ci 12101bd4fe43Sopenharmony_ci【语法】 12111bd4fe43Sopenharmony_ci 12121bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_AWB_UnRegister(VI_PIPE ViPipe, ALG_LIB_S*pstAwbLib); 12131bd4fe43Sopenharmony_ci 12141bd4fe43Sopenharmony_ci【参数】 12151bd4fe43Sopenharmony_ci 12161bd4fe43Sopenharmony_ci 12171bd4fe43Sopenharmony_ci 12181bd4fe43Sopenharmony_ci【返回值】 12191bd4fe43Sopenharmony_ci 12201bd4fe43Sopenharmony_ci 12211bd4fe43Sopenharmony_ci 12221bd4fe43Sopenharmony_ci【需求】 12231bd4fe43Sopenharmony_ci 12241bd4fe43Sopenharmony_ci* 头文件:hi_comm_isp.h、mpi_awb.h 12251bd4fe43Sopenharmony_ci 12261bd4fe43Sopenharmony_ci* 库文件:libisp.a 12271bd4fe43Sopenharmony_ci 12281bd4fe43Sopenharmony_ci【注意】 12291bd4fe43Sopenharmony_ci 12301bd4fe43Sopenharmony_ci* 该接口调用了ISP库提供的AWB反注册回调接口HI_MPI_ISP_AWBLibRegCallBack,以实现AWB向ISP库反注册的功能。 12311bd4fe43Sopenharmony_ci* 用户调用此接口完成上海海思AWB库向ISP库反注册,此接口不支持多进程操作。 12321bd4fe43Sopenharmony_ci* 12331bd4fe43Sopenharmony_ci 12341bd4fe43Sopenharmony_ci以下接口可以在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/include/mpi_ae.h文件中找到 12351bd4fe43Sopenharmony_ci 12361bd4fe43Sopenharmony_ci**HI_MPI_AE_UnRegister** 12371bd4fe43Sopenharmony_ci 12381bd4fe43Sopenharmony_ci【描述】 12391bd4fe43Sopenharmony_ci 12401bd4fe43Sopenharmony_ci* 向ISP反注册AE库。 12411bd4fe43Sopenharmony_ci 12421bd4fe43Sopenharmony_ci【语法】 12431bd4fe43Sopenharmony_ci 12441bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_AE_UnRegister(VI_PIPE ViPipe, ALG_LIB_S *pstAeLib); 12451bd4fe43Sopenharmony_ci 12461bd4fe43Sopenharmony_ci【参数】 12471bd4fe43Sopenharmony_ci 12481bd4fe43Sopenharmony_ci 12491bd4fe43Sopenharmony_ci 12501bd4fe43Sopenharmony_ci【返回值】 12511bd4fe43Sopenharmony_ci 12521bd4fe43Sopenharmony_ci 12531bd4fe43Sopenharmony_ci 12541bd4fe43Sopenharmony_ci【需求】 12551bd4fe43Sopenharmony_ci 12561bd4fe43Sopenharmony_ci* 头文件:hi_comm_isp.h、mpi_ae.h 12571bd4fe43Sopenharmony_ci 12581bd4fe43Sopenharmony_ci* 库文件:libisp.a、lib_hiae.a 12591bd4fe43Sopenharmony_ci 12601bd4fe43Sopenharmony_ci【注意】 12611bd4fe43Sopenharmony_ci 12621bd4fe43Sopenharmony_ci* 该接口调用了ISP库提供的AE反注册回调接口HI_MPI_ISP_AELibUnRegCallBack,以实现AE向ISP库反注册的功能。 12631bd4fe43Sopenharmony_ci 12641bd4fe43Sopenharmony_ci* 此接口不支持多进程操作。 12651bd4fe43Sopenharmony_ci 12661bd4fe43Sopenharmony_ci 12671bd4fe43Sopenharmony_ci 12681bd4fe43Sopenharmony_ci**HI_MPI_AE_Register** 12691bd4fe43Sopenharmony_ci 12701bd4fe43Sopenharmony_ci【描述】 12711bd4fe43Sopenharmony_ci 12721bd4fe43Sopenharmony_ci* 向ISP注册AE库。 12731bd4fe43Sopenharmony_ci 12741bd4fe43Sopenharmony_ci【语法】 12751bd4fe43Sopenharmony_ci 12761bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_AE_Register(VI_PIPE ViPipe, ALG_LIB_S *pstAeLib); 12771bd4fe43Sopenharmony_ci 12781bd4fe43Sopenharmony_ci【参数】 12791bd4fe43Sopenharmony_ci 12801bd4fe43Sopenharmony_ci 12811bd4fe43Sopenharmony_ci 12821bd4fe43Sopenharmony_ci【返回值】 12831bd4fe43Sopenharmony_ci 12841bd4fe43Sopenharmony_ci 12851bd4fe43Sopenharmony_ci 12861bd4fe43Sopenharmony_ci【需求】 12871bd4fe43Sopenharmony_ci 12881bd4fe43Sopenharmony_ci* 头文件:hi_comm_isp.h、mpi_ae.h 12891bd4fe43Sopenharmony_ci 12901bd4fe43Sopenharmony_ci* 库文件:libisp.a、lib_hiae.a 12911bd4fe43Sopenharmony_ci 12921bd4fe43Sopenharmony_ci【注意】 12931bd4fe43Sopenharmony_ci 12941bd4fe43Sopenharmony_ci* 该接口调用了ISP库提供的AE注册回调接口HI_MPI_ISP_AELibRegCallBack,以实现上海海思AE库向ISP库注册的功能。 12951bd4fe43Sopenharmony_ci* AE库可以注册多个实例。 12961bd4fe43Sopenharmony_ci* 此接口不支持多进程操作。 12971bd4fe43Sopenharmony_ci 12981bd4fe43Sopenharmony_ci 12991bd4fe43Sopenharmony_ci 13001bd4fe43Sopenharmony_ci以下接口可以在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/include/mpi_awb.h文件中找到 13011bd4fe43Sopenharmony_ci 13021bd4fe43Sopenharmony_ci**HI_MPI_AWB_Register** 13031bd4fe43Sopenharmony_ci 13041bd4fe43Sopenharmony_ci【描述】 13051bd4fe43Sopenharmony_ci 13061bd4fe43Sopenharmony_ci* 向ISP注册AWB库。 13071bd4fe43Sopenharmony_ci 13081bd4fe43Sopenharmony_ci【语法】 13091bd4fe43Sopenharmony_ci 13101bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_AWB_Register(VI_PIPE ViPipe, ALG_LIB_S *pstAwbLib); 13111bd4fe43Sopenharmony_ci 13121bd4fe43Sopenharmony_ci【参数】 13131bd4fe43Sopenharmony_ci 13141bd4fe43Sopenharmony_ci 13151bd4fe43Sopenharmony_ci 13161bd4fe43Sopenharmony_ci【返回值】 13171bd4fe43Sopenharmony_ci 13181bd4fe43Sopenharmony_ci 13191bd4fe43Sopenharmony_ci 13201bd4fe43Sopenharmony_ci【需求】 13211bd4fe43Sopenharmony_ci 13221bd4fe43Sopenharmony_ci* 头文件:hi_comm_isp.h、mpi_awb.h 13231bd4fe43Sopenharmony_ci 13241bd4fe43Sopenharmony_ci* 库文件:libisp.a 13251bd4fe43Sopenharmony_ci 13261bd4fe43Sopenharmony_ci【注意】 13271bd4fe43Sopenharmony_ci 13281bd4fe43Sopenharmony_ci* 该接口调用了ISP库提供的AWB注册回调接口HI_MPI_ISP_AWBLibRegCallBack,以实现向ISP库注册的功能。 13291bd4fe43Sopenharmony_ci 13301bd4fe43Sopenharmony_ci* 用户调用此接口完成上海海思AWB库向ISP库注册。 13311bd4fe43Sopenharmony_ci 13321bd4fe43Sopenharmony_ci* AWB库可以注册多个实例,此接口不支持多进程操作。 13331bd4fe43Sopenharmony_ci 13341bd4fe43Sopenharmony_ci 13351bd4fe43Sopenharmony_ci 13361bd4fe43Sopenharmony_ci以下接口可以在device/soc/hisilicon/hi3516dv300/sdk_linux/sample/include/mpi_isp.h文件中找到 13371bd4fe43Sopenharmony_ci 13381bd4fe43Sopenharmony_ci**HI_MPI_ISP_AWBLibRegCallBack** 13391bd4fe43Sopenharmony_ci 13401bd4fe43Sopenharmony_ci【描述】 13411bd4fe43Sopenharmony_ci 13421bd4fe43Sopenharmony_ci* ISP提供的AWB库注册的回调接口。 13431bd4fe43Sopenharmony_ci 13441bd4fe43Sopenharmony_ci【语法】 13451bd4fe43Sopenharmony_ci 13461bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_ISP_AWBLibRegCallBack(VI_PIPE ViPipe, ALG_LIB_S *pstAwbLib, ISP_AWB_REGISTER_S *pstRegister); 13471bd4fe43Sopenharmony_ci 13481bd4fe43Sopenharmony_ci【参数】 13491bd4fe43Sopenharmony_ci 13501bd4fe43Sopenharmony_ci 13511bd4fe43Sopenharmony_ci 13521bd4fe43Sopenharmony_ci【返回值】 13531bd4fe43Sopenharmony_ci 13541bd4fe43Sopenharmony_ci 13551bd4fe43Sopenharmony_ci 13561bd4fe43Sopenharmony_ci【需求】 13571bd4fe43Sopenharmony_ci 13581bd4fe43Sopenharmony_ci* 头文件:hi_comm_isp.h、mpi_isp.h 13591bd4fe43Sopenharmony_ci 13601bd4fe43Sopenharmony_ci* 库文件:libisp.a 13611bd4fe43Sopenharmony_ci 13621bd4fe43Sopenharmony_ci【注意】 13631bd4fe43Sopenharmony_ci 13641bd4fe43Sopenharmony_ci* ISP提供统一的AWB算法库接口,初始化、运行、控制、销毁AWB算法库。使用上海海思AWB算法库时,不需要关注此接口;使用用户自己的AWB算法库时,需要调用此接口向ISP注册回调函数。 13651bd4fe43Sopenharmony_ci 13661bd4fe43Sopenharmony_ci* 此接口不支持多进程操作。 13671bd4fe43Sopenharmony_ci 13681bd4fe43Sopenharmony_ci* 最大支持2个AWB库注册。 13691bd4fe43Sopenharmony_ci 13701bd4fe43Sopenharmony_ciISP库与AWB库间的接口如下图所示: 13711bd4fe43Sopenharmony_ci 13721bd4fe43Sopenharmony_ci 13731bd4fe43Sopenharmony_ci 13741bd4fe43Sopenharmony_ci 13751bd4fe43Sopenharmony_ci 13761bd4fe43Sopenharmony_ci**HI_MPI_ISP_AELibUnRegCallBack** 13771bd4fe43Sopenharmony_ci 13781bd4fe43Sopenharmony_ci【描述】 13791bd4fe43Sopenharmony_ci 13801bd4fe43Sopenharmony_ci* ISP提供的AE库反注册的回调接口。 13811bd4fe43Sopenharmony_ci 13821bd4fe43Sopenharmony_ci【语法】 13831bd4fe43Sopenharmony_ci 13841bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_ISP_AELibUnRegCallBack(VI_PIPE ViPipe, ALG_LIB_S *pstAeLib); 13851bd4fe43Sopenharmony_ci 13861bd4fe43Sopenharmony_ci【参数】 13871bd4fe43Sopenharmony_ci 13881bd4fe43Sopenharmony_ci 13891bd4fe43Sopenharmony_ci 13901bd4fe43Sopenharmony_ci【返回值】 13911bd4fe43Sopenharmony_ci 13921bd4fe43Sopenharmony_ci 13931bd4fe43Sopenharmony_ci 13941bd4fe43Sopenharmony_ci【需求】 13951bd4fe43Sopenharmony_ci 13961bd4fe43Sopenharmony_ci* 头文件:hi_comm_isp.h、mpi_isp.h 13971bd4fe43Sopenharmony_ci 13981bd4fe43Sopenharmony_ci* 库文件:libisp.a 13991bd4fe43Sopenharmony_ci 14001bd4fe43Sopenharmony_ci【注意】 14011bd4fe43Sopenharmony_ci 14021bd4fe43Sopenharmony_ci* 使用上海海思AE算法库时,不需要关注此接口;使用用户自己的AE算法库时,需要调用此接口向ISP反注册回调函数。 14031bd4fe43Sopenharmony_ci 14041bd4fe43Sopenharmony_ci* 此接口不支持多进程操作。 14051bd4fe43Sopenharmony_ci 14061bd4fe43Sopenharmony_ci 14071bd4fe43Sopenharmony_ci 14081bd4fe43Sopenharmony_ci**HI_MPI_ISP_AELibRegCallBack** 14091bd4fe43Sopenharmony_ci 14101bd4fe43Sopenharmony_ci【描述】 14111bd4fe43Sopenharmony_ci 14121bd4fe43Sopenharmony_ci* ISP提供的AE库注册的回调接口。 14131bd4fe43Sopenharmony_ci 14141bd4fe43Sopenharmony_ci【语法】 14151bd4fe43Sopenharmony_ci 14161bd4fe43Sopenharmony_ci* HI_S32 HI_MPI_ISP_AELibRegCallBack(VI_PIPE ViPipe, ALG_LIB_S *pstAeLib, ISP_AE_REGISTER_S *pstRegister); 14171bd4fe43Sopenharmony_ci 14181bd4fe43Sopenharmony_ci【参数】 14191bd4fe43Sopenharmony_ci 14201bd4fe43Sopenharmony_ci 14211bd4fe43Sopenharmony_ci 14221bd4fe43Sopenharmony_ci【返回值】 14231bd4fe43Sopenharmony_ci 14241bd4fe43Sopenharmony_ci 14251bd4fe43Sopenharmony_ci 14261bd4fe43Sopenharmony_ci【需求】 14271bd4fe43Sopenharmony_ci 14281bd4fe43Sopenharmony_ci* 头文件:hi_comm_isp.h、mpi_isp.h 14291bd4fe43Sopenharmony_ci 14301bd4fe43Sopenharmony_ci* 库文件:libisp.a 14311bd4fe43Sopenharmony_ci 14321bd4fe43Sopenharmony_ci【注意】 14331bd4fe43Sopenharmony_ci 14341bd4fe43Sopenharmony_ci* ISP提供统一的AE算法库接口,初始化、运行、控制、销毁AE算法库。使用上海海思AE算法库时,不需要关注此接口;使用用户自己的AE算法库时,需要调用此接口向ISP注册回调函数。 14351bd4fe43Sopenharmony_ci 14361bd4fe43Sopenharmony_ci* 此接口不支持多进程操作。 14371bd4fe43Sopenharmony_ci 14381bd4fe43Sopenharmony_ci* 最大支持2个AE库注册。 14391bd4fe43Sopenharmony_ci 14401bd4fe43Sopenharmony_ciISP库与AE库间的接口关系如下图所示: 14411bd4fe43Sopenharmony_ci 14421bd4fe43Sopenharmony_ci 1443