高通相机系统-usecase配置
高通相机系统用usecase描述一个相机的使用场景。相机场景配置以序列化的形式保存在g_sm8350_usecase.xml。工程构建阶段配置转换脚本usecaseconverter.pl解析这些usecase配置,以数据结构的形式组织管理,最终以so的形式提供一组访问这些usecase配置的接口。
1.usecase配置转换
2.usecase配置操作接口的加载
3.加载usecase配置
ExtensionModule加载动态链接库中实现的usecase配置操作接口后,首先需要将usecase配置数据导入,后续才能通过usecase操作接口获取配置。
通过PopulatePipelineData(),ExtensionModule将sm8350 usecase配置数据导入。
//chi-cdk/core/chiframework/chxextensionmodule.cpp
ExtensionModule::ExtensionModule():...
{//1.加载usecase selector实现const CHAR* pChiusecaseSelector = "/vendor/lib/com.qti.chiusecaseselector.so";m_chiUsecaseHandle = ChxUtils::LibMap(pChiusecaseSelector);//2.获取usecase selector导出配置函数ChiPopulatePipelineData pFuncPopulatePipelineData = reinterpret_cast<ChiPopulatePipelineData>(ChxUtils::LibGetAddr(m_chiUsecaseHandle, "PopulatePipelineData"));//3.导出usecase配置pFuncPopulatePipelineData(m_platformID);...
}
4.操作usecase配置
usecase配置数据导入后,就可以通过UsecaseSelector提供的操作接口操作usecase配置了。
usecase配置操作接口有:
//chi-cdk/oem/qcom/chiusecase/common/chxusecaseselector.cpp
//1.导入配置
extern "C" CAMX_VISIBILITY_PUBLIC VOID PopulatePipelineData(INT32 socId)extern "C" CAMX_VISIBILITY_PUBLIC VOID PopulatePipelineData(INT32 socId)
//获取匹配的usecase选择器
extern "C" CAMX_VISIBILITY_PUBLIC ChiUsecase* UsecaseSelector::DefaultMatchingUsecaseSelection(camera3_stream_configuration_t* pStreamConfig,UINT32 bpp)
//获取默认匹配的usecase
extern "C" CAMX_VISIBILITY_PUBLIC ChiUsecase* GetDefaultMatchingUsecase(camera3_stream_configuration_t* pStreamConfig,UINT32 bpp)
//根据streamConfigure裁剪usecase
extern "C" CAMX_VISIBILITY_PUBLIC CDKResult PruneUsecaseByStreamConfig(const camera3_stream_configuration* pStreamConfig,const ChiUsecase* pUsecaseInputDescriptor,ChiUsecase** ppUsecaseOutputDescriptor)//获取配置中enumName-enumValue映射表
extern "C" CAMX_VISIBILITY_PUBLIC VOID* GetMapFromLibEnum()
//获取配置中usecaseName-usecaseInstance映射表
extern "C" CAMX_VISIBILITY_PUBLIC VOID* GetMapFromLibpChiUsecase()
//获取配置中usecaseCollectionName-usecaseCollection映射表
extern "C" CAMX_VISIBILITY_PUBLIC VOID* GetMapFromLibpChiTargetUsecases()
//
extern "C" CAMX_VISIBILITY_PUBLIC VOID* GetMapFromLibStringArray()
usecase配置管理模块根据taget个数将usecase进行分组。一个分组中的usecase拥有相同个数的target,构成一个collection(用ChiTargetUsecase数据结构表示)。usecase分组中的一个usecase是一个实例,用ChiUsecase数据结构表示。
5.使用实例
以轻颜后置预览为例,对configure_streams阶段创建advancedCameraUsecase过程中usecase配置操作进行说明。
advanced usecase实例的构建可以分为两个阶段:clone 默认的usecase,然后根据流配置进行裁剪。
高通相机系统-usecase配置相关推荐
- 高通手机系统属性配置:system.prop----build.prop是所有安卓手机都有的一些配置信息。
build.prop是所有安卓手机都有的一些配置信息. 位置在system/build.prop 我们了解了这些配置的意义后,可以通过root后对这个配置文件做一定的修改,达到不同的自定义效果,如:更 ...
- 高通平台android 环境配置编译及开发经验总结
完全转自:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通 ...
- 高通平台android 环境配置编译及开发经验总结【转】
1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通开发板上烧录文件系统 建立高通平台开发环境 高通平台,android和 modem 编译流程分析 高通平台 7620 启动流 ...
- 高通APQ8074 spi 接口配置
高通APQ8074 spi 接口配置 8074 平台含有两个BLSP(BAM Low-Speed Peripheral) , 每一个BLSP含有两个QUP, 每一个QUP可以被配置为I2C, SPI, ...
- 高通ais cam.xml配置
高通ais cam.xml配置 参数解析代码: else if ((!xmlStrcmp(cur->name, (const xmlChar *)"display_se ...
- 高通linux系统交叉编译,【Linux】第三章 移植开源库
在开始移植前,默认已经下载好库文件并解压好 移植三部曲: ./configuer : 配置参数 make : 编译 make install : 安装 configure 配置参数说名 1 说明 在l ...
- 高通Camera IFE时钟配置
本文主要分享高通camera驱动中minHorizontalBlanking(最小水平消隐)和minVerticalBlanking(最小垂直消隐)配置项的计算方法: IFE时钟频率由以下sensor ...
- 高通7x27a平台UART配置
高通7x27a平台使用uart1作为debug的配置 高通7x27a平台一共有5个UART PORT: Port 对应的GPIO 描述 UART1 122+123 Can used for debug ...
- 高通MSM8953 LK阶段配置使用I2C8
项目场景: 因为项目需要,需要在高通MSM8953平台的LK阶段使用I2C8设备.但是MSM8953平台LK阶段并没有配置好I2C8接口,因此调试I2C8成为当务之急.本文只介绍在LK阶段配置使用I2 ...
最新文章
- 5教程 watchout_Unit 5单元复习学案设计
- jmeter使用beanshell构造参数化
- XManager 远程连接Netbackup图形用户界面
- NIO--Channel
- WPF之无法触发KeyDown或者KeyUp键盘事件
- php识别地址,实现地址自动识别实例(PHP)
- oracle11g中SQL优化(SQL TUNING)新特性之SQL Plan Management(SPM)
- C++——数的进制和数据间隔
- rs232 距离_串行通信接口之一RS232接口
- neo4j 如何删除所以的节点和关系
- java file util_Java FileUploadUtil工具类详解
- cs231n assignment3
- ISO50001认证辅导,ISO50001能源管理体系(EnMS)的框架是通过系统地提高能源效率和消耗
- 【Python56--爬取妹子图】
- 怎样用matlab画斜条纹图案,CorelDRAW制作简单的均匀倾斜条纹
- 软考(中级-软件设计师)知识点整理
- 小米路由器青春版刷入其他固件
- Kotlin入门-数据类与密封类 的解脱,由繁至简
- 2020.3.23 bugku(21-25)
- 蓝桥杯Java必备基础知识总结大全【3W字】持续更新中
热门文章
- 语义增强的大规模多元图简化可视分析方法
- 小程序和公众号的区别
- Navicat 连接mysql 显示 Clinet dose not support authentication protocol request by server
- 钱包原理——助记词与公私钥
- Oracle APEX 系列文章8:如何从 APEX 5.1.4 升级到最新的 APEX 18.1
- android shape画虚线
- 分享一个好用而且免费的GIF录制软件
- 是要成为海贼王的男人——日记4.21
- 互联网产品设计进阶(7)还需要懂点UML
- LOOP GROUP BY 分组循环的使用方法小栗子