Compatibilité avec plusieurs caméras

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 son ANDROID_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>