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 pipeline

BOOL                      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驱动代码结构相关推荐

  1. 高通平台按键驱动代码分析

    一.Input输入子系统架构 Input Driver(Input设备驱动层)->Input core(输入子系统核心层)->Event handler(事件处理层)->User s ...

  2. 高通平台 底层驱动GPIO控制

    做底层驱动免不了gpio打交道,所以对其操作和调试进行了一下简单的梳理 一.gpio的调试方法 在Linux下,通过sysfs,获取gpio状态,也可以操作gpio. 1.获取gpio状态 cd /s ...

  3. 高通平台--Camera点亮

    前言: 这部分结合高通文档,梳理下camera点亮的过程.等新项目做完之后 ,对可能出现的问题加以补充. 1.总体认识 如下工作流程,整体介绍Camera 点亮和Debug VENDOR:模组厂商,高 ...

  4. Android高通平台调试Camera驱动全纪录

    项目比较紧,3周内把一个带有外置ISP,MIPI数据通信,800万像素的camera从无驱动到实现客户全部需求. 1日 搭平台,建环境,编译内核,烧写代码. 我是一直在Window下搭个虚拟机登服务器 ...

  5. 高通平台开发系列讲解(外设篇)高通平台Camera摄像头驱动移植

    文章目录 一.高通平台摄像头软件框架 二.相关代码目录 三.驱动移植 3.1.新增camera节点 3.2.配置相关的GPIO 沉淀.分享.成长,让自己和他人都能有所收获!

  6. 请把Camera hold住 - Android高通平台调试Camera驱动全纪录

    项目比较紧,3周内把一个带有外置ISP,MIPI数据通信,800万像素的camera从无驱动到实现客户全部需求. 1日 搭平台,建环境,编译内核,烧写代码. 我是一直在Window下搭个虚拟机登服务器 ...

  7. 高通平台添加或者移植一个完整的camera

    OV8865 1.kernel部分: A.kernel_driver: 把驱动文件ov8865_qtech_f8865ac.c 放到kernel/drivers/media/platform/msm/ ...

  8. 高通平台使用64位win7系统无法安装驱动的解决方法

    XP停止服务,于是果断告别XP换上win7,可是突然发现高通平台驱动在windows 7 64位电脑上安装不了有木有?!   其实不用担心!这个很好搞定哦! 首先咱们得知道64位的win7考虑了系统安 ...

  9. 高通平台开发实践经验

    高通平台开发实践经验 本文以一个3GPP下MO call(mobile original call)为例,简述从上层到下层如何建立call.安卓架构很多人都有印象,从APP层到FrameWork层到H ...

最新文章

  1. c语言将字母与数字分开存放,2017年计算机二级《C语言》考前提分试题及答案9...
  2. 怎么查电脑系统版本_电脑系统垃圾清理利器,专业、小巧且免费,有这一个就够了...
  3. NVIDIA Jetson Xavier NX分配磁盘空间
  4. Spring Boot 2动态修改日志级别
  5. python之多线程编程(一):基本介绍
  6. 【转】在ASP.NET Web API 2中使用Owin基于Token令牌的身份验证
  7. image 3d view HTML5,Cute Slider - 3D 2D HTML5 Image Slider
  8. 【linux】——环境变量
  9. [转载] python中集合的表示_Python No.18_集合以及表示符号
  10. python破解qq空间访问权限_怎么利用爬虫爬取QQ空间中设置了权限的无法正常访问的内容?...
  11. c语言16qam,基于SIMULINK的OFDM-16QAM系统仿真与分析
  12. vkt中使用OBJImporter导入模型并进行贴图
  13. 下拉列表支持拼音简拼、全拼、汉字搜索。
  14. java 支付宝对账文件处理,支付宝账单下载读文件解析
  15. 抖音育儿类账号的创作灵感分享, 想进圈的不妨了解一下
  16. 简信CRM:CRM科学服务体系,促进企业销售增长
  17. Qt雪花飘落程序,下雪
  18. 使用cpolar内网穿透搭建远程监控
  19. cf游戏进不去计算机,cf更新之后进不去 穿越火线进不去解决方法
  20. COVID-19检测方法汇总

热门文章

  1. 专利一通回案实审是什么
  2. Debian 二进制文件(华文宋体字体)打包解包
  3. Java初学者入门简介
  4. 电子产品设计的流程有哪些
  5. Facebook android 第三方登录
  6. CSS 特殊字符 ‘#‘ 、‘.’ 、‘*’、‘:’、空格“ ”、 ‘>’ , ‘,’
  7. 【超详细】MMLab分类任务mmclassification:环境配置说明、训练、预测及模型结果可视化展示
  8. adb 命令打开音乐播放器,并播放音乐
  9. php导出1万条数据excel_PHP快速导出百万级数据到CSV或者EXCEL文件
  10. 解决ArcGIS 9.3 - 10.2.2的一个BUG