第26讲 Camera Native FW Device架构介绍

在这里插入图片描述在这里插入图片描述

1 Camera Device主要交互逻辑

从两个角度来看Camera Device架构

  1. 提供接口给上层控制操作Camera设备 – CameraDeviceBase
  2. 回调Result Metadata和Image Buffer给上层 – FrameProcessor和Stream

在这里插入图片描述

  1. device 处理完一帧数据之后会产生Metadata,然后将Metadata存放在Queue里面。
  2. device 处理完一帧数据之后会产生Stream

2 提供接口给上层控制操作Camera – CameraDeviceBase

  1. CameraDeviceBase继承FrameProducer,实现对外获取Result metadata的接口
  2. CameraDeviceBase接口用于Client操作HAL2/HAL3 Device, Camera2Device是过渡产品,代码已经废弃
  3. HidlCamera3Device对接HIDL HAL层接口,AidlCamera3Device对接AIDL HAL层接口,他们都继承自Camera3Device

在这里插入图片描述

Camera3Device 和 Camera2Device 都继承自,CameraDeviceBase ,他们的区别对 Camera2ClientBase 是透明的。

3 回调Result Metadata架构 – FrameProcessor

  1. FrameProcessorBase启动一个线程调用FrameProducer的waitForNextFrame和getNextResult从ResultQueue里面获取CaptureResult
  2. Camera API2的Result metadata处理逻辑在FrameProcessorBase里面
  3. Camera API1的Result metadata处理逻辑在FrameProcessor里面

在这里插入图片描述

4 API2 回调Image Buffer架构 – Camera Stream

  1. Camera3Device根据配置信息决定创建Camera3InputStream/Camera3OutputStream/Camera3SharedOutputStream
  2. camera_stream是一个结构体,与HAL Stream长得一模一样

在这里插入图片描述在这里插入图片描述其实这个设计有点混乱,还有可以优化的地方

5 API1 回调Image Buffer架构 – Processor

上层使用API1时,Buffer送到Stream后,要么直接送给上层(Preview+Recording Stream),要么送给Processor取出Buffer回调给上层。

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值