OpenHarmony 实战开发——Camera模块详解~

概述

OpenHarmony相机驱动框架模型对上实现相机HDI(Hardware Device Interface)接口,对下实现相机Pipeline模型,管理相机各个硬件设备。
该驱动框架模型内部分为三层,依次为HDI实现层、框架层和设备适配层,各层基本概念如下:

  • HDI实现层:实现OHOS(OpenHarmony Operation System)相机标准南向接口。
  • 框架层:对接HDI实现层的控制、流的转发,实现数据通路的搭建,管理相机各个硬件设备等功能。
  • 设备适配层:屏蔽底层芯片和OS(Operation System)差异,支持多平台适配。

图 1 Camera驱动模块架构图

目录

  • Camera模块目录表如下:
  /drivers/peripheral/camera
      ├── hal                         # camera模块的hal层代码
      │   ├── adapter                 # camera hal平台适配层的实现
      │   ├── buffer_manager          # camera hal统一的Buffer管理
      │   ├── device_manager          # 提供camera hal层设备管理能力,包括设备枚举、设备能力查询等
      │   ├── hdi_impl                # camera hal HDI的具体实现
      │   ├── include                 # camera hal层内部的头文件
      │   ├── init                    # camera hal层HDI接口使用样例实现
      │   ├── pipeline_core           # camera hal层pipeline核心代码 
      │   ├── test                    # camera hal层测试代码实现
      │   └── utils                   # camera hal层工具类代码,目前提供的是watchdog
      ├── hal_c                       # 提供C实现的HAL接口
      │   ├── hdi_cif                 # C实现的HDI接口适配代码
      │   └── include                 # C形式的HDI接口
      └── interfaces                  # camera hal对上层服务提供的驱动能力接口
          ├── hdi_ipc                 # IPC模式的HDI实现
          ├── hdi_passthrough         # 直通模式的HDI实现
          └── include                 # camera hal对外提供的HDI定义

接口说明

  • icamera_device.h

    功能描述 接口名称
    获取流控制器 CamRetCode GetStreamOperator(
    const OHOS::sptr<IStreamOperatorCallback> &callback,
    OHOS::sptr<IStreamOperator> &streamOperator)
    更新设备控制参数 CamRetCode UpdateSettings(const std::shared_ptr<CameraSetting> &settings)
    设置Result回调模式和回调函数 CamRetCode SetResultMode(const ResultCallbackMode &mode)
    获取使能的ResultMeta CamRetCode GetEnabledResults(std::vector<MetaType> &results)
    使能具体的ResultMeta CamRetCode EnableResult(const std::vector<MetaType> &results)
    禁止具体的ResultMeta CamRetCode DisableResult(const std::vector<MetaType> &results)
    关闭Camera设备 void Close()
  • icamera_device_callback.h

    功能描述 接口名称
    设备发生错误时调用,由调用者实现,用于返回错误信息给调用者 void OnError(ErrorType type, int32_t errorCode)
    上报camera设备相关的metadata的回调 void OnResult(uint64_t timestamp, const std::shared_ptr<CameraMetadata> &result)
  • icamera_host.h

    功能描述 接口名称
    设置ICameraHost回调接口 CamRetCode SetCallback(const OHOS::sptr<ICameraHostCallback> &callback)
    获取当前可用的Camera设备ID列表 CamRetCode GetCameraIds(std::vector
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值