2024年11月03日 第27讲 Camera Native FW API1和API2调用HAL3流程介绍 极客笔记
本讲是Android Camera Native Framework专题的第27讲,我们介绍Camera Native FW的API1和API2调用HAL3流程。
更多资源:
资源 | 描述 |
---|---|
在线课程 | 极客笔记在线课程 |
知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
极客笔记圈 |
Camera2Client会将参数送给StreamingProcessor完成Parameters到CaptureRequest的转换
转换后的CaptureRequest (mPreviewRequest和mRecordingRequest)保存在StreamingProcessor中
再次更新Preview/Recording Request
调用StreamingProcessor的startStream,将Repeating request送给Camera3Device,Camera3Device执行ConfigureStream并submit request给HAL
拿到可用的CaptureResult后送给FrameProcessor执行processSingleFrame,处理Face Detect回调和向Parameters更新3A State。
StreamingProcessor(预览/录像)
CallbackProcessor
这里讨论非setPreviewCallbackTarget方式回调预览Data,PreviewCallbackTarget方式跟上面StreamingProcessor流程一样
Google创建了一个CaptureSequencer来维护拍照的状态机转换。
API1->HAL3 Non-ZSL && Non-AE Precapture 流程
非ZSL且不带AE Prepare Trigger的拍照流程如上图所示,整个拍照过程由CaptureSequencer来驱动,JpegProcessor收到拍照图像后,通知给CaptureSequencer负责回调给App。
API2中,所有数据流都走BufferQueue,Camera3Device通知Camera3Stream buffer处理完毕后,会直接queueBuffer给BufferQueue,进而Consumer就会被通知到有Buffer上来了。
本文链接:http://so.lmcjl.com/news/16926/