Dukungan multi-kamera

Dalam Exterior View System (EVS) 1.1, perangkat kamera logis yang terdiri dari beberapa perangkat kamera fisik didukung. Untuk menggunakan perangkat virtual ini, implementasi perangkat harus mendukung Synchronization Framework .

Menghitung, membuka, dan menutup perangkat kamera logis

Aplikasi ini dapat menggunakan metode IEvsEnumerator yang sama untuk menggunakan perangkat kamera logis yang tersedia. Objek EvsCamera yang dikembalikan, yang mewakili perangkat kamera logis, harus berisi item berikut dalam metadata:

  • ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
    Jika objek EvsCamera yang dikembalikan mewakili kamera logis, metadata kameranya harus berisi kunci kemampuan ini di bidang ANDROID_REQUEST_AVAILABLE_CAPABILITIES .
  • Bidang ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS mencantumkan pengidentifikasi perangkat kamera fisik.
  • Bidang ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE dapat memiliki salah satu nilai enum berikut:
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE ditujukan untuk sensor dalam mode master-master, tidak ada sinkronisasi rana/pencahayaan perangkat keras.
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED ditujukan untuk sensor dalam mode master-slave, sinkronisasi rana/pencahayaan perangkat keras. Kamera GMSL2 yang disinkronkan harus memiliki nilai ini.

Aplikasi ini dapat mengambil deskriptor perangkat kamera fisik melalui IEvsCamera dalam metode getPhysicalCameraInfo(stringcameraId) yang baru.

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

Konfigurasikan dukungan multi-kamera

Semua kamera logis harus didefinisikan secara statis dan harus dihitung melalui implementasi manajer konfigurasi. Karena EVS memungkinkan setiap perangkat dalam grup dikonfigurasi secara berbeda, EVS menyediakan daftar perangkat anggota dan menunjukkan apakah pengambilan gambar disinkronkan atau tidak.

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

Dalam Exterior View System (EVS) 1.1, perangkat kamera logis yang terdiri dari beberapa perangkat kamera fisik didukung. Untuk menggunakan perangkat virtual ini, implementasi perangkat harus mendukung Synchronization Framework .

Menghitung, membuka, dan menutup perangkat kamera logis

Aplikasi ini dapat menggunakan metode IEvsEnumerator yang sama untuk menggunakan perangkat kamera logis yang tersedia. Objek EvsCamera yang dikembalikan, yang mewakili perangkat kamera logis, harus berisi item berikut dalam metadata:

  • ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
    Jika objek EvsCamera yang dikembalikan mewakili kamera logis, metadata kameranya harus berisi kunci kemampuan ini di bidang ANDROID_REQUEST_AVAILABLE_CAPABILITIES .
  • Bidang ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS mencantumkan pengidentifikasi perangkat kamera fisik.
  • Bidang ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE dapat memiliki salah satu nilai enum berikut:
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE ditujukan untuk sensor dalam mode master-master, tidak ada sinkronisasi rana/pencahayaan perangkat keras.
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED ditujukan untuk sensor dalam mode master-slave, sinkronisasi rana/pencahayaan perangkat keras. Kamera GMSL2 yang disinkronkan harus memiliki nilai ini.

Aplikasi ini dapat mengambil deskriptor perangkat kamera fisik melalui IEvsCamera dalam metode getPhysicalCameraInfo(stringcameraId) yang baru.

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

Konfigurasikan dukungan multi-kamera

Semua kamera logis harus didefinisikan secara statis dan harus dihitung melalui implementasi manajer konfigurasi. Karena EVS memungkinkan setiap perangkat dalam grup dikonfigurasi secara berbeda, EVS menyediakan daftar perangkat anggota dan menunjukkan apakah pengambilan gambar disinkronkan atau tidak.

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