Çoklu kamera desteği

Dış Görünüm Sistemi (EVS) 1.1'de birden fazla fiziksel kamera cihazından oluşan mantıksal kamera cihazı desteklenmektedir. Bu sanal cihazı kullanmak için cihaz uygulamalarının Senkronizasyon Çerçevesini desteklemesi gerekir.

Mantıksal kamera cihazını numaralandırın, açın ve kapatın

Uygulama, mevcut mantıksal kamera cihazlarını kullanmak için aynı IEvsEnumerator yöntemlerini kullanabilir. Mantıksal bir kamera aygıtını temsil eden döndürülen EvsCamera nesnesi, meta verilerde aşağıdaki öğeleri içermelidir:

  • ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
    Döndürülen bir EvsCamera nesnesi mantıksal bir kamerayı temsil ediyorsa, kamera meta verilerinin ANDROID_REQUEST_AVAILABLE_CAPABILITIES alanında bu yetenek anahtarını içermesi gerekir.
  • ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS alanı, fiziksel kamera cihazı tanımlayıcılarını listeler.
  • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE alanı aşağıdaki numaralandırma değerlerinden birine sahip olabilir:
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE , ana-ana modundaki sensörler içindir, donanım deklanşör/pozlama senkronizasyonu yoktur.
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED , ana-bağımlı modundaki, donanım deklanşör/pozlama senkronizasyonundaki sensörler içindir. Senkronize GMSL2 kameralar bu değere sahip olmalıdır.

Uygulama, yeni getPhysicalCameraInfo(stringcameraId) yöntemindeki IEvsCamera aracılığıyla fiziksel kamera cihazlarının tanımlayıcısını alabilir.

/**
 * 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);

Çoklu kamera desteğini yapılandırma

Tüm mantıksal kameraların statik olarak tanımlanması ve bir yapılandırma yöneticisi uygulaması aracılığıyla numaralandırılması gerekir. EVS, gruptaki her cihazın farklı şekilde yapılandırılmasına izin verdiğinden EVS, üye cihazların bir listesini sağlar ve görüntü yakalamanın senkronize edilip edilmediğini gösterir.

<!-- 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>
,

Dış Görünüm Sistemi (EVS) 1.1'de birden fazla fiziksel kamera cihazından oluşan mantıksal kamera cihazı desteklenmektedir. Bu sanal cihazı kullanmak için cihaz uygulamalarının Senkronizasyon Çerçevesini desteklemesi gerekir.

Mantıksal kamera cihazını numaralandırın, açın ve kapatın

Uygulama, mevcut mantıksal kamera cihazlarını kullanmak için aynı IEvsEnumerator yöntemlerini kullanabilir. Mantıksal bir kamera aygıtını temsil eden döndürülen EvsCamera nesnesi, meta verilerde aşağıdaki öğeleri içermelidir:

  • ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
    Döndürülen bir EvsCamera nesnesi mantıksal bir kamerayı temsil ediyorsa, kamera meta verilerinin ANDROID_REQUEST_AVAILABLE_CAPABILITIES alanında bu yetenek anahtarını içermesi gerekir.
  • ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS alanı, fiziksel kamera cihazı tanımlayıcılarını listeler.
  • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE alanı aşağıdaki numaralandırma değerlerinden birine sahip olabilir:
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE , ana-ana modundaki sensörler içindir, donanım deklanşör/pozlama senkronizasyonu yoktur.
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED , ana-bağımlı modundaki, donanım deklanşör/pozlama senkronizasyonundaki sensörler içindir. Senkronize GMSL2 kameralar bu değere sahip olmalıdır.

Uygulama, yeni getPhysicalCameraInfo(stringcameraId) yöntemindeki IEvsCamera aracılığıyla fiziksel kamera cihazlarının tanımlayıcısını alabilir.

/**
 * 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);

Çoklu kamera desteğini yapılandırma

Tüm mantıksal kameraların statik olarak tanımlanması ve bir yapılandırma yöneticisi uygulaması aracılığıyla numaralandırılması gerekir. EVS, gruptaki her cihazın farklı şekilde yapılandırılmasına izin verdiğinden EVS, üye cihazların bir listesini sağlar ve görüntü yakalamanın senkronize edilip edilmediğini gösterir.

<!-- 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>