https://deepinout.com/android-camera-native-framework/cameraserver-process-startup-cameradevicestatus-overview.html
1 Camera Device Status调用总体流程
camera provider 通过callback 接收 camera HAL的的消息
camera service 通过 status listener 接收 camera provider 的消息
camera app 通过 camera service listener 接收 camera service 的消息
2 HIDL Camera Device Status
HAL CameraDeviceStatus状态机如下:
代码定义在:/hardware/interfaces/camera/common/1.0/types.hal
3 Framework Camera Device Status
Camera Framework(ICameraServiceListener.aidl)定义的CameraDevice Status
多了一个 NOT_AVAILABLE 状态,表示另外一个APP正在使用。
4 Logical VS Physical VS Logical MultiCam
Case1: App能看到5颗Camera,实际只有3颗物理Camera
- Logical 0,1,2都对应一个Physical Camera
- Logical multicam 3和4分别对应2个Physical camera
- 对App而言,只有Logical multicam才有physical camera的概念,因为非multicam情况下一个logical对应一个physical
Case2: App能看到4颗Camera,实际有3颗物理Camera,Physical 2对App不单独可见
- Logical 0,1都对应一个Physical Camera
- Logical multicam 3和4分别对应2个Physical camera
- 只有Logical multicam 4能用到Physical 2