Camera驱动 | 高通CAMX-CHI代码架构
代码路径
camx目录中是统一的功能性接口,chi-cdk目录中则是可以供厂商客制化的部分:
先看看camx
camx/src/core 这个目录下就是主要实现hal功能的代码了
./chi用于与CHI进行交互
./hal用于实现hal3的接口
再回到vendor/qcom/proprietary/chi-cdk/的内容
为了有个快速的认识,直接进到**vendor/qcom/proprietary/chi-cdk/oem/qcom/**目录中:
actuator/ 存放对焦模块的配置信息
ois/ 存放防抖模块的配置信息
tuning/ 存放效果参数的配置信息
topology/ 存放用户自定的Usecase配置文件
…
node/中存放了用户自定义的功能
实存在很多很多自定义的模块,node/下的这些目录都是一个个具有独立处理功能的模块这些模块可以是硬件单元,也可以是软件单元,每个node的可定制化部分会在XML中定义
在这个目录下grep一下virtual,能看到:
其目录topology/ 也和上面说的存放用户自定的Usecase配置文件对上了
一个Node结构的组成如下:
NodeName: 用来定义该Node的名称
NodeId: 用来指定该Node的ID,其中IPE NodeId为65538,IFE NodeId为65536,用户自定义的NodeId为255。
NodeInstance: 用于定义该Node的当前实例的名称。
NodeInstanceId: 用于指定该Node实例的Id。
这些有不同处理功能的Node组成了不同的Pipeline,那么可以看看我们关注的这个TctVirtualCameraNode所在的Pipeline:
原来是JPEGEncodeLiveSnapshotPreview这个pipeline
Camx-CHI架构中,要构成一个pipeline除了node,还需要描述node的输入输出端口(port),以及连接这些node之间的link(参考https://segmentfault.com/a/1190000024445632)
在上述文件中查找,确实有port和link的描述:
12055行的修改去git show 一下:
看上去是修改了link所连接的node和node两端的port,梳理一下具体的修改:
参考:
https://blog.csdn.net/u012596975/article/details/107138576?spm=1001.2014.3001.5501
相关文章
- 报名 | 美团技术沙龙:基于领域驱动设计(DDD)的架构演进和实践
- eclipse Java项目 动态Java项目 导入MySQL驱动jar包[通俗易懂]
- mysql:Java通过驱动包(jar包)连接MySQL数据库—步骤总结及验证
- windows10+nvidia驱动+cuda10.1+cudnn安装教程
- 驱动开发:内核遍历进程VAD结构体
- DDD领域驱动设计在微服务架构的应用
- 企业架构与领域驱动设计的融合
- STM32F103RCT6驱动SG90舵机-完成正反转角度控制
- Linux内核驱动开发之路(linux内核驱动开发)
- 深度解析:Linux驱动的分层模型(linux驱动分层)
- Linux网卡驱动安装及配置指南(linux网卡驱动流程)
- Linux卸载网卡驱动:操作指南(linux卸载网卡驱动)
- MySQL驱动下开发想法实现(ideamysql驱动)
- Linux声卡驱动结构:深入解析系统底层架构(linux声卡驱动结构)
- :MySQL驱动数据库之旅(mysql 一句话)
- 最新技术驱动,搭建完善的Redis集群(最新搭建redis集群)
- Oracle驱动数字转型的先驱之一(oracle 以什么开头)