En el sistema de vista exterior (EVS) 1.1, el dispositivo de cámara lógica que consta de se admiten varios dispositivos de cámara físicos. Para usar este dispositivo virtual, el dispositivo implementaciones deben admitir el Sincronización de Framework.
Cómo enumerar, abrir y cerrar el dispositivo de cámara lógico
La app puede usar los mismos métodos IEvsEnumerator
para usar la
dispositivos de cámara lógicas disponibles. El objeto EvsCamera
que se devuelve, que
representa un dispositivo de cámara lógica, debe contener los siguientes elementos en los metadatos:
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
de
Si un objeto EvsCamera que se muestra representa una cámara lógica, los metadatos de esta debe contener esta clave de función en suANDROID_REQUEST_AVAILABLE_CAPABILITIES
.ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS
enumera los identificadores de dispositivos de cámara física.ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
puede tener cualquiera de los siguientes valores de enumeración:ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE
es para sensores en modo maestro maestro, sin sincronización de exposición ni obturador de hardware.ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED
es para sensores en modo principal-secundario y sincronización de exposición/obturador de hardware. Las cámaras GMSL2 sincronizadas deben tener este valor.
La app puede recuperar un descriptor de dispositivos de cámara físicos mediante
IEvsCamera
en la nueva experiencia de 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 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);
Cómo configurar la compatibilidad con varias cámaras
Todas las cámaras lógicas deben definirse de forma estática y deben se enumeran mediante una implementación del administrador de configuración. Como EVS permite que cada dispositivo del grupo se configure de manera diferente, EVS proporcionará una lista de miembros e indica si se sincronizó la captura de imágenes.
<!-- 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>