【Camera Framework笔记】三、Camera Native Framework架构②

三、device架构
camera device主要交互逻辑:
1.提供接口给上层控制操作camera设备 - cameradevicebase
    cameradevicebase继承frameProducer,实现对外获取result  metadata
    cameraDeviceBase接口用于client操作hal3device


                                                                        frameProducer
    camera2ClientBase                                              |
    mDevice::cameraDeviceBase         ->     cameraDeviceBase
                                                                                 |
                                                                        camera3Device
                                                                                 |
                                                                aidl/hidl camera3Device
    
   
2.API2回调result metadata 给上层 - frameProcessorBase  (异步)
    FrameProcessorBase启动一个线程调用FrameProducer的waitForNextFrame和getNextResult,从Result Queue里面获取CaptureResult

    frameProcessorBase::threadloop(waitfornextframe -> processNewFrames -> getnextresult)
    frameProducer(waitfornextframe:下一帧的metadata,getnextresult:captureResult)

3.API2回调 image buffer给上层 - camerastream (同步)
    camera3device根据配置信息决定创建 camera3inputstream  camera3outputstream camera3sharedstream
    camera_stream 是一个结构体,与hal stream一样
    为什么抽象出 camera3stream?
        input output stream的基类,继承 camera_stream
        提供接口转换成hal stream


四、api2 -> hal3的控制流程与参数回调
    CameraDeviceClient收到上层的调用后,会对应调用到Camera3Device,进而调用到HAL层的接口
    FrameProcessorBase拿到Result Metadata后会回调给CameraDeviceClient,CameraDeviceClient再通过onResultReceived接口回调给上层
    
    比如configurestream
    cameraservice:endconfigure -> camera3Device::configurestreams -> hal configurestream
    frameProcessorBase::threadloop(waitfornextframe(camera3Device) -> processNewFrames -> getnextresult)
        -> frameProcessorBase:onResultAvailable ->onResultReceived

五、api2 -> hal3数据流回调
    processCaptureResult -> camera3outputstream -> BQ -> Consumer
    camera3Device通知camera3stream buffer处理完毕后 会将buffer queue到bufferqueue

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cam_Rxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值