高通平台--camera驱动代码结构
1、camx/src/core
sensor、manager、pipeline等结构的实现
camxpipeline.h
/// @brief Pipeline create input data
struct PipelineCreateInputData
{
ChiContext* pChiContext; ///< ChiContext pointer
const PipelineDescriptor* pPipelineDescriptor; ///< Pipeline descriptor
UINT pipelineIndex; ///< Pipeline Index from the Session
BOOL isRealTime; ///< Is it a real time pipelineBOOL isSecureMode; ///< Mode of pipeline Secure/Non-secure
};/// @brief Pipeline create output data
struct PipelineCreateOutputData
{
Pipeline* pPipeline; ///< Created pipeline
UINT32 numInputs; ///< Number of inputs
/// @todo (CAMX-1512) Instead of Chi structures use wrappers
ChiPipelineInputOptions* pPipelineInputOptions; ///< Input buffer requirements for the create pipeline
};
camxnode.h
/// @brief Node create input data
struct NodeCreateInputData
{
const PerNodeInfo* pNodeInfo; ///< Node info
Camera3Stream** ppCamera3Streams; ///< Camera3 streams
Pipeline* pPipeline; ///< Pipeline pointer
UINT pipelineNodeIndex; ///< This node instance's index in the pipeline nodes
const HwFactory* pFactory; ///< HwFactory pointer
ChiContext* pChiContext; ///< Chi Context
ChiNodeCallbacks* pChiNodeCallbacks; ///< CHINode callbacks pointer
CHIAFALGORITHMCALLBACKS* pAFAlgoCallbacks; ///< Algo Calllback Interface for Chi
CHIAECALGORITHMCALLBACKS* pAECAlgoCallbacks; ///< Algo Calllback Interface for Chi
CHIAWBALGORITHMCALLBACKS* pAWBAlgoCallbacks; ///< Algo Calllback Interface for Chi
CHIAFDALGORITHMCALLBACKS* pAFDAlgoCallbacks; ///< Algo Calllback Interface for Chi
CHIASDALGORITHMCALLBACKS* pASDAlgoCallbacks; ///< Algo Calllback Interface for Chi
CHIPDLIBRARYCALLBACKS* pPDLibCallbacks; ///< Algo Calllback Interface for Chi
CHIISPHVXALGORITHMCALLBACKS* pHVXAlgoCallbacks; ///< HVX Algo Callback Interface for Chi
};
/// @brief Node create output data
struct NodeCreateOutputData
{
Node* pNode; ///< Created node object pointer
const CHAR* pNodeName; ///< Name of the node (filled in the by the derived node)
NodeCreateFlags createFlags; ///< Create flags
UINT maxNumCmdBufferManagers; ///< Max require number of command buffer managers
UINT maxOutputPorts; ///< Max number of output ports supported
UINT maxInputPorts; ///< Max number of input ports supported
BufferGroup bufferComposite; ///< Buffer composite info
};/// @brief Node capture request data.
struct NodeProcessRequestData
{
CaptureRequest* pCaptureRequest; ///< Stream configuration pointer
DependencyUnit dependencyInfo[MaxDependencies]; ///< List of Dependency info that will be reported back
/// to topology. Each element in the list is a set of
/// property and buffer dependencies
UINT numDependencyLists; /// Number of entries in the Dependency List
PerBatchedFrameInfo* pPerBatchedFrameInfo; ///< Per batched frame info
INT32 processSequenceId; ///< Identifier for the node to track its processing order
BOOL bindIOBuffers; ///< Flag indicating whether node requested input, output buffers
/// to be available on this sequenceId
BOOL isSequenceIdInternal; ///< True if processSequenceId belongs to base node
};
camxsession.h
/// @brief Pipeline descriptor handle used to describe a pipeline
struct PipelineDescriptor
{
PerPipelineInfo pipelineInfo; ///< Pipeline info that will be used to create the
/// actual pipeline object
UINT numOutputs; ///< Number of outputs (<= MaxPipelineOutputs)
PipelineOutputData outputData[MaxPipelineOutputs]; ///< Output data
UINT numInputs; ///< Number of inputs (<= MaxPipelineInputs)
PipelineInputData inputData[MaxPipelineInputs]; ///< Input data for this pipeline
PipelineDescriptorFlags flags; ///< Flags
UINT numBatchedFrames; ///< Number of framework frames batched
UINT maxFPSValue; ///< maxFPSValue info of batched frames
UINT32 cameraId; ///< Camera Id of pipeline
CHAR pipelineName[MaxStringLength256]; ///< Name of this pipeline
VOID* pPrivData; ///< Camx private data, carrying pipeline obj ptr.
MetaBuffer* pSessionMetadata; ///< Metadata buffer published by the Chi Usecase
};
2、camx/src/core/hal
camera provider 在hal的接口实现
3、camx/src/core/chi
主要是于chi api的函数映射相关文件
4、camx/src/swl
软件流程和node实现,包括stats、jpeg、sensor等
5、camx/src/hwl
硬件相关流程与node的实现,平台支持。包括ife,bps,ipe等
6、vendor/qcom/proprietary/chi-cdk/vendor
chi api ,即hal3的拓展部分
actuator :VCM驱动配置
sensor:sensor驱动配置
eeprom:eeprom驱动配置
module:模组驱动配置
flash:闪光灯驱动配置
fd:人脸参数配置
tuning:效果调试参数
ois:ois驱动配置
node:各个node的实现
topology:拓扑图xml
后续高通代码逻辑结构会在这里继续补充
高通平台--camera驱动代码结构相关推荐
- 高通平台按键驱动代码分析
一.Input输入子系统架构 Input Driver(Input设备驱动层)->Input core(输入子系统核心层)->Event handler(事件处理层)->User s ...
- 高通平台 底层驱动GPIO控制
做底层驱动免不了gpio打交道,所以对其操作和调试进行了一下简单的梳理 一.gpio的调试方法 在Linux下,通过sysfs,获取gpio状态,也可以操作gpio. 1.获取gpio状态 cd /s ...
- 高通平台--Camera点亮
前言: 这部分结合高通文档,梳理下camera点亮的过程.等新项目做完之后 ,对可能出现的问题加以补充. 1.总体认识 如下工作流程,整体介绍Camera 点亮和Debug VENDOR:模组厂商,高 ...
- Android高通平台调试Camera驱动全纪录
项目比较紧,3周内把一个带有外置ISP,MIPI数据通信,800万像素的camera从无驱动到实现客户全部需求. 1日 搭平台,建环境,编译内核,烧写代码. 我是一直在Window下搭个虚拟机登服务器 ...
- 高通平台开发系列讲解(外设篇)高通平台Camera摄像头驱动移植
文章目录 一.高通平台摄像头软件框架 二.相关代码目录 三.驱动移植 3.1.新增camera节点 3.2.配置相关的GPIO 沉淀.分享.成长,让自己和他人都能有所收获!
- 请把Camera hold住 - Android高通平台调试Camera驱动全纪录
项目比较紧,3周内把一个带有外置ISP,MIPI数据通信,800万像素的camera从无驱动到实现客户全部需求. 1日 搭平台,建环境,编译内核,烧写代码. 我是一直在Window下搭个虚拟机登服务器 ...
- 高通平台添加或者移植一个完整的camera
OV8865 1.kernel部分: A.kernel_driver: 把驱动文件ov8865_qtech_f8865ac.c 放到kernel/drivers/media/platform/msm/ ...
- 高通平台使用64位win7系统无法安装驱动的解决方法
XP停止服务,于是果断告别XP换上win7,可是突然发现高通平台驱动在windows 7 64位电脑上安装不了有木有?! 其实不用担心!这个很好搞定哦! 首先咱们得知道64位的win7考虑了系统安 ...
- 高通平台开发实践经验
高通平台开发实践经验 本文以一个3GPP下MO call(mobile original call)为例,简述从上层到下层如何建立call.安卓架构很多人都有印象,从APP层到FrameWork层到H ...
最新文章
- c语言将字母与数字分开存放,2017年计算机二级《C语言》考前提分试题及答案9...
- 怎么查电脑系统版本_电脑系统垃圾清理利器,专业、小巧且免费,有这一个就够了...
- NVIDIA Jetson Xavier NX分配磁盘空间
- Spring Boot 2动态修改日志级别
- python之多线程编程(一):基本介绍
- 【转】在ASP.NET Web API 2中使用Owin基于Token令牌的身份验证
- image 3d view HTML5,Cute Slider - 3D 2D HTML5 Image Slider
- 【linux】——环境变量
- [转载] python中集合的表示_Python No.18_集合以及表示符号
- python破解qq空间访问权限_怎么利用爬虫爬取QQ空间中设置了权限的无法正常访问的内容?...
- c语言16qam,基于SIMULINK的OFDM-16QAM系统仿真与分析
- vkt中使用OBJImporter导入模型并进行贴图
- 下拉列表支持拼音简拼、全拼、汉字搜索。
- java 支付宝对账文件处理,支付宝账单下载读文件解析
- 抖音育儿类账号的创作灵感分享, 想进圈的不妨了解一下
- 简信CRM:CRM科学服务体系,促进企业销售增长
- Qt雪花飘落程序,下雪
- 使用cpolar内网穿透搭建远程监控
- cf游戏进不去计算机,cf更新之后进不去 穿越火线进不去解决方法
- COVID-19检测方法汇总
热门文章
- 专利一通回案实审是什么
- Debian 二进制文件(华文宋体字体)打包解包
- Java初学者入门简介
- 电子产品设计的流程有哪些
- Facebook android 第三方登录
- CSS 特殊字符 ‘#‘ 、‘.’ 、‘*’、‘:’、空格“ ”、 ‘>’ , ‘,’
- 【超详细】MMLab分类任务mmclassification:环境配置说明、训练、预测及模型结果可视化展示
- adb 命令打开音乐播放器,并播放音乐
- php导出1万条数据excel_PHP快速导出百万级数据到CSV或者EXCEL文件
- 解决ArcGIS 9.3 - 10.2.2的一个BUG