在外景系统 (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 相机必须具有此值。
-
应用程序可以通过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 提供了成员设备列表并指示图像捕获是否同步。
<!-- camera group 0 --> <group id='group0' synchronized='CALIBRATED'> <caps> <!-- list of supported controls supported by all physical devices --> <supported_controls> <control name='BRIGHTNESS' min='0' max='255'/> <control name='CONTRAST' min='0' max='255'/> </supported_controls> <!-- list of stream configuration supported by all physical devices --> <stream id='0' width='640' height='480' format='RGBA_8888' framerate='30'/> </caps> <!-- list of parameters --> <characteristics> <parameter name='REQUEST_AVAILABLE_CAPABILITIES' type='enum' size='1' value='LOGICAL_MULTI_CAMERA' /> <parameter name='LOGICAL_MULTI_CAMERA_PHYSICAL_IDS' type='byte[]' size='2' value='/dev/video3,/dev/video4' /> </characteristics> </group>