PipelineModel是HAL3核心架构,对上需要开放对Pipeline创建 & 操作的API,对下需要建立Pipeline & 管理Pipeline的生命周期。
1. IPipelineModel的角色
在open/close stage,Power on/off sensor;
在config stage,根据APP的createCaptureSession里面带下来的surface list,推测Output以及按照Topological推测Pipeline各个Node是否需要创建以及各个Node的I/O buffer,建立整条PipelineModel;
在Request Stage,接到上层queue下来的request,转化为Pipleline统一的IPipelineFrame,决定这个request的I/O buffer、Topological、sub frame、dummy frame、feature set等信息;
其中:
- Topological是指这个request要经过的处理节点(Node),这个节点的拓扑图只能是config stage创建的PipelineModel拓扑图的子集。
- sub frame指是否需要多帧frame来做出这个request,例如4 frame MFNR拍照,上层只会给1个request,但做出1张MFNR结果需要4个frame叠合,所以另外3个就是sub frame。
- dummy frame是指是否需要多帧来产生一张3A收敛的frame结果,例如HDR一般需要EV +