Android camera: Metadata\Image从HAL到framework

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: proce*tureResult

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函数

proce*tureResult会发送mResultSignal触发这里

Android camera: Metadata\Image从HAL到framework

Notify的处理过程

Notify的处理除了调用listener的notify还设置了time用于proce*tureResult

Android camera: Metadata\Image从HAL到framework

使怎样触发调用的sProce*tureResult?

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

hidl层的sProce*tureResultf调用service 层的 sProce*tureResult进而调用到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