RequestThread

Thread for managing capture request submission to HAL device

Android camera: Metadata\Image从HAL到framework

1. waiting next batch of requests:

CaptureRequest: From App to framework
cemara3_capture_request: camera service sent to HAL

Android camera: Metadata\Image从HAL到framework

2. prepareHalRequests()

该函数里最麻烦的是获得getBuffer

Android camera: Metadata\Image从HAL到framework


HAL call into framework: processCaptureResult

camera3_capture_result数据结构:


Android camera: Metadata\Image从HAL到framework

这里最麻烦的是 returnOutputBuffers:

Android camera: Metadata\Image从HAL到framework

把fill后的buffer和consumer关联

Android camera: Metadata\Image从HAL到framework

接收mResultSignal回调java层传入的onResultAvailable函数

processCaptureResult会发送mResultSignal触发这里

Android camera: Metadata\Image从HAL到framework

Notify的处理过程

Notify的处理除了调用listener的notify还设置了time用于processCaptureResult

Android camera: Metadata\Image从HAL到framework

使怎样触发调用的sProcessCaptureResult?

在camera service 和hidl层有2个地方有sProcessCaptureResult的定义和实现是不同层实现的callback:

hidl层的sProcessCaptureResultf调用service 层的 sProcessCaptureResult进而调用到java层接口onResultReceived

Android camera: Metadata\Image从HAL到framework


hidl层的callback是怎样被调到的?

从本地实现调用到传入的回调函数

Android camera: Metadata\Image从HAL到framework


Android camera: Metadata\Image从HAL到framework

Android camera: Metadata\Image从HAL到framework


Android camera: Metadata\Image从HAL到framework

相关文章:

  • 2021-08-16
  • 2021-05-01
  • 2022-12-23
  • 2021-07-21
  • 2021-10-22
  • 2021-06-17
猜你喜欢
  • 2021-12-11
  • 2021-07-09
  • 2021-12-14
  • 2021-05-07
  • 2022-12-23
  • 2021-05-19
相关资源
相似解决方案