Dans la version EVS 1.1, l'appareil photo logique constitué de est compatible avec plusieurs appareils photo physiques. Pour utiliser cet appareil virtuel, doivent être compatibles avec Synchronisation Google Cloud.
Énumérer, ouvrir et fermer un appareil photo logique
L'application peut utiliser les mêmes méthodes IEvsEnumerator
pour utiliser la
d'appareils photo logiques disponibles. L'objet EvsCamera
renvoyé, qui
qui représente un appareil photo logique et doit contenir les éléments suivants dans les métadonnées:
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
Si un objet EvsCamera renvoyé représente une caméra logique, ses métadonnées d'appareil photo doit contenir cette clé de capacité dans sonANDROID_REQUEST_AVAILABLE_CAPABILITIES
.ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS
répertorie les identifiants des appareils photo physiques.ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
peut avoir l'une des valeurs enum suivantes:ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE
concerne les capteurs en mode maître/maître, pas de synchronisation matérielle entre l'obturateur et l'exposition.ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED
pour les capteurs en mode maître-esclave, la synchronisation de l'obturateur matériel/de l'exposition. Cette valeur doit être indiquée pour les caméras GMSL2 synchronisées.
L'application peut récupérer un descripteur des appareils photo physiques via
IEvsCamera
dans la nouvelle version 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);
Configurer la compatibilité multicaméra
Toutes les caméras logiques doivent être définies de manière statique et doivent être énumérés via une implémentation du gestionnaire de configuration. Étant donné qu'EVS permet à chaque appareil du groupe à configurer différemment, EVS fournit une liste des membres et indique si la capture d'image est synchronisée ou non.
<!-- 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>