إتاحة استخدام كاميرات متعددة

في نظام "العرض الخارجي" (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 على أيّ من القيم التالية:
    • 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>