当前位置: 代码迷 >> 综合 >> Camera API1 相机参数设置流程二 hardware层
  详细解决方案

Camera API1 相机参数设置流程二 hardware层

热度:76   发布时间:2023-12-29 09:16:18.0

Camera API1 相机参数设置流程一 framework层

Camera API1 相机参数设置流程二 hardware层

 

HAL 

Android P 中 相机 HAL 代码目录:

  • Android Camera parameters

hardware/interfaces/camera/common/1.0/default/CameraParameters.cpp

  • MTK Camera parameters

vendor/mediatek/proprietary/hardware/mtkcam/utils/fwk/CameraParameters.cpp

vendor/mediatek/proprietary/hardware/mtkcam/utils/fwk/MtkCameraParameters.cpp

 

主要分析 MTK 平台

MTK 平台使用 MTK Camera HAL ,拓展平台的 Camera 功能。

  • MTK Camera HAL 目录

vendor/mediatek/proprietary/hardware/mtkcam  

vendor/mediatek/proprietary/hardware/mtkcam3

 

通过打印信息和代码跳转可知,

vendor/mediatek/proprietary/hardware/mtkcam/main/hal/device/1.x/device/CameraDevice1Base.cpp

Return<Status> CameraDevice1Base::setParameters(const hidl_string& params)

 

用 grep 搜索查到

vendor/mediatek/proprietary/hardware/mtkcam/middleware/v1/common/paramsmgr/params/ParamsManager.cpp

发送 CameraParameters

 

vendor/mediatek/proprietary/hardware/mtkcam/utils/fwk/CameraParameters.cpp

是不是很熟悉下图代码中的成员函数: flatten , unflatten , set , get  , 和framework 中 CameraParameters2.cpp、 Camera.java  函数命名规则类似。

 

在Android 源码中搜索 setParameters  metadata CameraId 等,根据经验定位到如下文件:

不分析定位代码的过程,这里给出部分文件的索引,感兴趣的朋友可查阅源码。

vendor/mediatek/proprietary/hardware/mtkcam/middleware/v1/adapter/Default/v3/DefaultAdapter.Param.cpp

vendor/mediatek/proprietary/hardware/mtkcam/middleware/v1/LegacyPipeline/request/RequestControllerImp.cpp

vendor/mediatek/proprietary/hardware/mtkcam/utils/metastore/metadataprovider/MetadataProvider.cpp

vendor/mediatek/proprietary/hardware/mtkcam/utils/LogicalCam/HalLogicalDeviceList.cpp

根据上述代码的 pHalDeviceList 定位到 HalLogicalDeviceList

/vendor/mediatek/proprietary/hardware/mtkcam/utils/LogicalCam/HalLogicalDeviceList.cpp

在下图的名字中可知管理相机设备(逻辑)列表。

查阅代码继续定位到

vendor/mediatek/proprietary/hardware/mtkcam/drv/src/sensor/mtxxxx/imgsensor_drv.cpp

熟悉linux的朋友从如下代码中的 open close  ioctl 可知进入linux 用户空间。

  相关解决方案