Hỗ trợ nhiều camera

Trong Hệ thống quan sát bên ngoài (EVS) 1.1, thiết bị camera logic bao gồm nhiều thiết bị máy ảnh thực. Để sử dụng thiết bị ảo này, thiết bị phải hỗ trợ Đồng bộ hoá Khung.

Liệt kê, mở và đóng thiết bị camera logic

Ứng dụng có thể dùng các phương thức IEvsEnumerator tương tự để sử dụng thiết bị camera logic có sẵn. Đối tượng EvsCamera được trả về. Đối tượng này đại diện cho một thiết bị camera logic, phải chứa các mục sau trong siêu dữ liệu:


  • ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA Nếu đối tượng EvsCamera được trả về đại diện cho một camera logic, thì siêu dữ liệu của camera đó phải chứa khoá chức năng này trong ANDROID_REQUEST_AVAILABLE_CAPABILITIES .
  • ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS trường liệt kê mã nhận dạng thiết bị máy ảnh thực.
  • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE trường có thể có một trong các giá trị enum dưới đây:
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE là dành cho các cảm biến ở chế độ chính, không đồng bộ hoá phơi sáng/màn trập phần cứng.
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED dành cho các cảm biến ở chế độ chính-phụ, đồng bộ hoá màn trập/phơi sáng phần cứng. Máy ảnh GMSL2 đã đồng bộ hoá phải có giá trị này.

Ứng dụng có thể truy xuất phần mô tả của thiết bị máy ảnh thực thông qua IEvsCamera trong getPhysicalCameraInfo(stringcameraId) mới .

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

Định cấu hình tính năng hỗ trợ nhiều camera

Tất cả camera logic bắt buộc phải được xác định ở dạng tĩnh và phải liệt kê trong quá trình triển khai trình quản lý cấu hình. Vì EVS cho phép mỗi thiết bị trong nhóm cần được định cấu hình theo cách khác, EVS sẽ cung cấp một danh sách thành viên thiết bị và cho biết liệu việc chụp ảnh đã được đồng bộ hoá hay chưa.

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