תמיכה בריבוי מצלמות

ב-Exterior View System (EVS) 1.1, התקן המצלמה הלוגית המורכב ממספר התקני מצלמה פיזיים נתמך. כדי להשתמש במכשיר וירטואלי זה, יישומי מכשירים חייבים לתמוך במסגרת הסנכרון .

מנה, פתח וסגור את התקן המצלמה הלוגית

האפליקציה יכולה להשתמש באותן שיטות IEvsEnumerator כדי להשתמש בהתקני המצלמה הלוגית הזמינים. אובייקט EvsCamera המוחזר, המייצג התקן מצלמה לוגי, חייב להכיל את הפריטים הבאים במטא נתונים:

  • ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
    אם אובייקט EvsCamera שהוחזר מייצג מצלמה לוגית, המטא-נתונים של המצלמה שלו חייבים להכיל מפתח יכולת זה בשדה ANDROID_REQUEST_AVAILABLE_CAPABILITIES שלו.
  • שדה ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS מפרט מזהי מכשירי מצלמה פיזיים.
  • שדה ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE יכול לכלול אחד מערכי ה-enum מתחת:
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE מיועד לחיישנים במצב מאסטר-מאסטר, ללא סנכרון חומרה/תריס חשיפה.
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED מיועד לחיישנים במצב מאסטר-עבד, סנכרון חומרה תריס/חשיפה. למצלמות GMSL2 מסונכרנות חייב להיות ערך זה.

האפליקציה יכולה לאחזר מתאר של התקני מצלמה פיזית דרך IEvsCamera בשיטת 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);

הגדר תמיכה בריבוי מצלמות

כל המצלמות הלוגיות נדרשות להיות מוגדרות באופן סטטי ויש למנות אותן באמצעות יישום מנהל תצורה. מכיוון ש-EVS מאפשר לכל מכשיר בקבוצה להיות מוגדר בצורה שונה, EVS מספק רשימה של התקנים חברים ומציינת אם לכידת התמונה מסונכרנת או לא.

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

ב-Exterior View System (EVS) 1.1, התקן המצלמה הלוגית המורכב ממספר התקני מצלמה פיזיים נתמך. כדי להשתמש במכשיר וירטואלי זה, יישומי מכשירים חייבים לתמוך במסגרת הסנכרון .

מנה, פתח וסגור את התקן המצלמה הלוגית

האפליקציה יכולה להשתמש באותן שיטות IEvsEnumerator כדי להשתמש בהתקני המצלמה הלוגית הזמינים. אובייקט EvsCamera המוחזר, המייצג התקן מצלמה לוגי, חייב להכיל את הפריטים הבאים במטא נתונים:

  • ANDROID_REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
    אם אובייקט EvsCamera שהוחזר מייצג מצלמה לוגית, המטא-נתונים של המצלמה שלו חייבים להכיל מפתח יכולת זה בשדה ANDROID_REQUEST_AVAILABLE_CAPABILITIES שלו.
  • שדה ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS מפרט מזהי מכשירי מצלמה פיזיים.
  • שדה ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE יכול לכלול אחד מערכי ה-enum מתחת:
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE מיועד לחיישנים במצב מאסטר-מאסטר, ללא סנכרון חומרה/תריס חשיפה.
    • ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_CALIBRATED מיועד לחיישנים במצב מאסטר-עבד, סנכרון חומרה תריס/חשיפה. למצלמות GMSL2 מסונכרנות חייב להיות ערך זה.

האפליקציה יכולה לאחזר מתאר של התקני מצלמה פיזית דרך IEvsCamera בשיטת 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);

הגדר תמיכה בריבוי מצלמות

כל המצלמות הלוגיות נדרשות להיות מוגדרות באופן סטטי ויש למנות אותן באמצעות יישום מנהל תצורה. מכיוון ש-EVS מאפשר לכל מכשיר בקבוצה להיות מוגדר בצורה שונה, EVS מספק רשימה של התקנים חברים ומציינת אם לכידת התמונה מסונכרנת או לא.

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