在外部视图系统(EVS)1.1中,支持由多个物理摄像头设备组成的逻辑摄像头设备。要使用此虚拟设备,设备实现必须支持Synchronization Framework 。
枚举,打开和关闭逻辑摄像头设备
该应用程序可以使用相同的IEvsEnumerator方法来使用可用的逻辑摄像头设备。返回的EvsCamera对象(代表逻辑相机设备)必须在元数据中包含以下各项:ANDROID_REQUEST_AVAILABLE_CAPABILITIES字段中包含此功能密钥。
ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS字段列出了物理相机设备标识符。
ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE字段可以具有以下任一枚举值:ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE适用于处于主-主模式的传感器,没有硬件快门/曝光同步。
ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED适用于处于主从模式,硬件快门/曝光同步的传感器。同步GMSL2摄像机必须具有该值。
该应用程序可以通过IEvsCamera中新的getPhysicalCameraInfo(stringcameraId)方法检索物理相机设备的描述符。 /**
* Returns the description of the physical camera device that backs this
* logical camera.
*
* If a requested device does not either exist or back this logical device,
* this method returns a null camera descriptor. And, if this is called on
* a physical camera device, this method is the same as getCameraInfo_1_1()
* method if a given device ID is matched. Otherwise, this will return a
* null camera descriptor.
*
* @param deviceId Physical camera device identifier string.
* @return info The description of a member physical camera device.
* This must be the same value as reported by
* EvsEnumerator::getCameraList_1_1().
*/
getPhysicalCameraInfo(string deviceId) generates (CameraDesc info);
配置多摄像机支持
所有逻辑摄像机都需要静态定义,并且必须通过配置管理器实现进行枚举。由于EVS允许组中的每个设备配置不同,因此EVS提供了一个成员设备列表,并指示是否同步了图像捕获。
name='REQUEST_AVAILABLE_CAPABILITIES'
type='enum'
size='1'
value='LOGICAL_MULTI_CAMERA'
/>
name='LOGICAL_MULTI_CAMERA_PHYSICAL_IDS'
type='byte[]'
size='2'
value='/dev/video3,/dev/video4'
/>