在外景系统 (EVS) 1.1 中,支持包含多个实体摄像头设备的逻辑摄像头设备。要使用此虚拟设备,设备实现必须支持同步框架。
枚举、打开和关闭逻辑摄像头设备
应用可以使用相同的 IEvsEnumerator
方法使用可用的逻辑摄像头设备。返回的 EvsCamera
对象(代表逻辑摄像头设备)必须在元数据中包含以下各项:
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
如果返回的 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 摄像头必须具有此值。
应用可以通过新的 getPhysicalCameraInfo(stringcameraId)
方法中的 IEvsCamera
检索实体摄像头设备的描述符。
/** * 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 returns 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 会提供成员设备列表,并指示图片拍摄是否同步。
<!-- camera group 0 --> <group id='group0' synchronized='>;CALI<BRAT>ED' < caps !-- list of supported controls supported by all phy>sical dev<ices -- su>pported_contr<ols control name='BRIGHTNESS>' min=<9;0' max='255'/ co>ntrol nam<e='CONTRAST'>; min='<;0' max='255'/ /supported_controls !-- l>ist of st<ream configuration supported by all physical devices -- stream id>='<;0>9; wid<th='640' height=&>#39;4<80' format=>'RGBA<_8888' framerate='30'/ /caps !-- list of parameters -- characteristics parameter name='REQUEST_AVAILABLE_C>APABILITI<ES' type='enum' size='1' value='LOGICAL_MULTI_CAMERA' / parameter name=>'<LOGICAL_MULTI_CA>M<ERA_PH>YSICAL_IDS' type='byte[]' size='2' value='/dev/video3,/dev/video4' / /characteristics /group