一、整体介绍:
首先看下MTKcam的整体框架图如下包含了很多的内容,其中camera的打开流程也贯穿在
其中,从Camera APK 一层层的系统调用到driver再到Hardware层,这篇文章主要从Pipeline开始
介绍打开camera的流程,JAVA/Cameraservice/MiddleWare层后续再进行介绍:
1、MiddleWare(MW)层介绍:
- ICameraProvider:向上暴露的接口调用,实现是在CameraProverideer中;
- Device@3.2ICameraDevice:用于Camera Service去操作各个Camera device的操作,实现在CameraDevice3中;
- Device@3.2ICameraDeviceSession:Camera会话的接口;
- ICameraDeviceCallBack:底层对上层的CallBack接口;
- CameraDeviceManager:用于管理CameraDevice,包括查找,打开,关闭等。
2、Pipeline介绍:
PipelineModel是HAL3核心架构,对上需要开放对Pipeline创建 & 操作的API,对下需要建立Pipeline & 管理
Pipeline的生命周期。PipelineModel会针对不同的场景创建不同的Pipeline和HWNode,HWNode向下传输APP层
的命令,向上传递图形数据:
- P1Node:pipeline的root node,input app命令,output raw data to P2CaptureNode and P2StreamNode;
- P2CaptureNode:转换raw data to yuvs,Support scale/crop;
- P2StreamingNode:和P2CaptureNode功能类似;
- JPEGNode&#x