<?xml version='1.0' encoding='utf-8'?>
<!-- Copyright (C) 2019 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!-- Exterior View System Example Configuration

     Android Automotive axes are used to define coordinates.
     See https://source.android.com/devices/sensors/sensor-types#auto_axes

     Use evs_configuration.dtd with xmllint tool, to validate XML configuration file
-->

<configuration>
    <!-- system configuration -->
    <system>
        <!-- number of cameras available to EVS -->
        <num_cameras value='2'/>
    </system>

    <!-- camera device information -->
    <camera>
        <!-- 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/video10,/dev/video11'
                />
            </characteristics>
        </group>

        <!-- camera device starts -->
        <device id='/dev/video3' position='rear'>
            <caps>
                <!-- list of supported controls -->
                <supported_controls>
                    <control name='BRIGHTNESS' min='0' max='255'/>
                    <control name='CONTRAST' min='0' max='255'/>
                    <control name='AUTO_WHITE_BALANCE' min='0' max='1'/>
                    <control name='WHITE_BALANCE_TEMPERATURE' min='2000' max='7500'/>
                    <control name='SHARPNESS' min='0' max='255'/>
                    <control name='AUTO_FOCUS' min='0' max='1'/>
                    <control name='ABSOLUTE_FOCUS' min='0' max='255' step='5'/>
                    <control name='ABSOLUTE_ZOOM' min='100' max='400'/>
                </supported_controls>

                <!-- list of supported stream configurations -->
                <!-- below configurations were taken from v4l2-ctrl query on Logitech Webcam C930e device -->
                <stream id='0' width='1920' height='1080' format='RGBA_8888' framerate='5'/>
                <stream id='1' width='2304' height='1296' format='RGBA_8888' framerate='2'/>
                <stream id='2' width='2304' height='1536' format='RGBA_8888' framerate='2'/>
                <stream id='4' width='1280' height='720'  format='RGBA_8888' framerate='10'/>
                <stream id='4' width='1024' height='576'  format='RGBA_8888' framerate='15'/>
                <stream id='5' width='960'  height='540'  format='RGBA_8888' framerate='15'/>
                <stream id='6' width='848'  height='480'  format='RGBA_8888' framerate='30'/>
                <stream id='7' width='640'  height='360'  format='RGBA_8888' framerate='30'/>
                <stream id='8' width='480'  height='270'  format='RGBA_8888' framerate='30'/>
                <stream id='9' width='160'  height='120'  format='RGBA_8888' framerate='30'/>
            </caps>

            <!-- list of parameters -->
            <characteristics>
                <!-- Lens distortion information. See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_DISTORTION
                -->
                <parameter
                    name='LENS_DISTORTION'
                    type='float'
                    size='5'
                    value='0.0,0.0,0.0,0.0,0.0'
                />

                <!-- Camera intrinsic calibration matrix. See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_INTRINSIC_CALIBRATION
                -->
                <parameter
                    name='LENS_INTRINSIC_CALIBRATION'
                    type='float'
                    size='5'
                    value='0.0,0.0,0.0,0.0,0.0'
                />

                <!-- Camera pose translation and rotation.  See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_POSE_TRANSLATION
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_POSE_ROTATION
                -->
                <parameter
                    name='LENS_POSE_TRANSLATION'
                    type='float'
                    size='3'
                    value='0.0,0.0,0.0'
                />
                <parameter
                    name='LENS_POSE_ROTATION'
                    type='float'
                    size='4'
                    value='0.0,0.0,0.0,0.0'
                />
            </characteristics>
        </device>
        <device id='/dev/video4' position='front'>
            <caps>
                <!-- list of supported controls -->
                <supported_controls>
                    <control name='BRIGHTNESS' min='0' max='255'/>
                    <control name='CONTRAST' min='0' max='255'/>
                    <control name='AUTO_WHITE_BALANCE' min='0' max='1'/>
                    <control name='WHITE_BALANCE_TEMPERATURE' min='2000' max='7500'/>
                    <control name='SHARPNESS' min='0' max='255'/>
                    <control name='AUTO_FOCUS' min='0' max='1'/>
                    <control name='ABSOLUTE_FOCUS' min='0' max='255' step='5'/>
                    <control name='ABSOLUTE_ZOOM' min='100' max='400'/>
                </supported_controls>

                <!-- list of supported stream configurations -->
                <!-- below configurations were taken from v4l2-ctrl query on Logitech Webcam C930e device -->
                <stream id='0' width='1920' height='1080' format='RGBA_8888' framerate='5'/>
                <stream id='1' width='2304' height='1296' format='RGBA_8888' framerate='2'/>
                <stream id='2' width='2304' height='1536' format='RGBA_8888' framerate='2'/>
                <stream id='4' width='1280' height='720'  format='RGBA_8888' framerate='10'/>
                <stream id='4' width='1024' height='576'  format='RGBA_8888' framerate='15'/>
                <stream id='5' width='960'  height='540'  format='RGBA_8888' framerate='15'/>
                <stream id='6' width='848'  height='480'  format='RGBA_8888' framerate='30'/>
                <stream id='7' width='640'  height='360'  format='RGBA_8888' framerate='30'/>
                <stream id='8' width='480'  height='270'  format='RGBA_8888' framerate='30'/>
                <stream id='9' width='160'  height='120'  format='RGBA_8888' framerate='30'/>
            </caps>

            <!-- list of parameters -->
            <characteristics>
                <!-- Lens distortion information. See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_DISTORTION
                -->
                <parameter
                    name='LENS_DISTORTION'
                    type='float'
                    size='5'
                    value='0.0,0.0,0.0,0.0,0.0'
                />

                <!-- Camera intrinsic calibration matrix. See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_INTRINSIC_CALIBRATION
                -->
                <parameter
                    name='LENS_INTRINSIC_CALIBRATION'
                    type='float'
                    size='5'
                    value='0.0,0.0,0.0,0.0,0.0'
                />

                <!-- Camera pose translation and rotation.  See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_POSE_TRANSLATION
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_POSE_ROTATION
                -->
                <parameter
                    name='LENS_POSE_TRANSLATION'
                    type='float'
                    size='3'
                    value='0.0,0.0,0.0'
                />
                <parameter
                    name='LENS_POSE_ROTATION'
                    type='float'
                    size='4'
                    value='0.0,0.0,0.0,0.0'
                />
            </characteristics>
        </device>

        <!-- vivid emulated video devices -->
        <device id='/dev/video10' position='rear'>
            <caps>
                <!-- list of supported controls -->
                <supported_controls>
                    <control name='BRIGHTNESS' min='0' max='255'/>
                    <control name='CONTRAST' min='0' max='255'/>
                    <control name='AUTO_WHITE_BALANCE' min='0' max='1'/>
                    <control name='WHITE_BALANCE_TEMPERATURE' min='2000' max='7500'/>
                    <control name='SHARPNESS' min='0' max='255'/>
                    <control name='AUTO_FOCUS' min='0' max='1'/>
                    <control name='ABSOLUTE_FOCUS' min='0' max='255' step='5'/>
                    <control name='ABSOLUTE_ZOOM' min='100' max='400'/>
                </supported_controls>

                <!-- list of supported stream configurations -->
                <!-- vivid webcam input support below three resolutions -->
                <stream id='0' width='1280' height='720' format='RGBA_8888' framerate='5'/>
                <stream id='1' width='640' height='360' format='RGBA_8888' framerate='15'/>
                <stream id='2' width='360' height='180' format='RGBA_8888' framerate='30'/>
            </caps>

            <!-- list of parameters -->
            <characteristics/>
        </device>
        <device id='/dev/video11' position='left'>
            <caps>
                <!-- list of supported controls -->
                <supported_controls>
                    <control name='BRIGHTNESS' min='0' max='255'/>
                    <control name='CONTRAST' min='0' max='255'/>
                    <control name='AUTO_WHITE_BALANCE' min='0' max='1'/>
                    <control name='WHITE_BALANCE_TEMPERATURE' min='2000' max='7500'/>
                    <control name='SHARPNESS' min='0' max='255'/>
                    <control name='AUTO_FOCUS' min='0' max='1'/>
                    <control name='ABSOLUTE_FOCUS' min='0' max='255' step='5'/>
                    <control name='ABSOLUTE_ZOOM' min='100' max='400'/>
                </supported_controls>

                <!-- list of supported stream configurations -->
                <!-- vivid webcam input support below three resolutions -->
                <stream id='0' width='1280' height='720' format='RGBA_8888' framerate='5'/>
                <stream id='1' width='640' height='360' format='RGBA_8888' framerate='15'/>
                <stream id='2' width='360' height='180' format='RGBA_8888' framerate='30'/>
            </caps>

            <!-- list of parameters -->
            <characteristics/>
        </device>
        <device id='/dev/video12' position='right'>
            <caps>
                <!-- list of supported controls -->
                <supported_controls>
                    <control name='BRIGHTNESS' min='0' max='255'/>
                    <control name='CONTRAST' min='0' max='255'/>
                    <control name='AUTO_WHITE_BALANCE' min='0' max='1'/>
                    <control name='WHITE_BALANCE_TEMPERATURE' min='2000' max='7500'/>
                    <control name='SHARPNESS' min='0' max='255'/>
                    <control name='AUTO_FOCUS' min='0' max='1'/>
                    <control name='ABSOLUTE_FOCUS' min='0' max='255' step='5'/>
                    <control name='ABSOLUTE_ZOOM' min='100' max='400'/>
                </supported_controls>

                <!-- list of supported stream configurations -->
                <!-- vivid webcam input support below three resolutions -->
                <stream id='0' width='1280' height='720' format='RGBA_8888' framerate='5'/>
                <stream id='1' width='640' height='360' format='RGBA_8888' framerate='15'/>
                <stream id='2' width='360' height='180' format='RGBA_8888' framerate='30'/>
            </caps>

            <!-- list of parameters -->
            <characteristics/>
        </device>
        <device id='/dev/video13' position='front'>
            <caps>
                <!-- list of supported controls -->
                <supported_controls>
                    <control name='BRIGHTNESS' min='0' max='255'/>
                    <control name='CONTRAST' min='0' max='255'/>
                    <control name='AUTO_WHITE_BALANCE' min='0' max='1'/>
                    <control name='WHITE_BALANCE_TEMPERATURE' min='2000' max='7500'/>
                    <control name='SHARPNESS' min='0' max='255'/>
                    <control name='AUTO_FOCUS' min='0' max='1'/>
                    <control name='ABSOLUTE_FOCUS' min='0' max='255' step='5'/>
                    <control name='ABSOLUTE_ZOOM' min='100' max='400'/>
                </supported_controls>

                <!-- list of supported stream configurations -->
                <!-- vivid webcam input support below three resolutions -->
                <stream id='0' width='1280' height='720' format='RGBA_8888' framerate='5'/>
                <stream id='1' width='640' height='360' format='RGBA_8888' framerate='15'/>
                <stream id='2' width='360' height='180' format='RGBA_8888' framerate='30'/>
            </caps>

            <!-- list of parameters -->
            <characteristics/>
        </device>

        <!-- camera device information for v4l2loopback devices -->
        <!-- camera group v4l2loopback_group0 -->
        <group id='v4l2loopback_group0' synchronized='CALIBRATED'>
            <caps>
                <!-- list of stream configuration supported by all physical devices -->
                <stream id='0' width='1920' height='1024' 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='4'
                    value='/dev/video60,/dev/video61,/dev/video62,/dev/video63'
                />
            </characteristics>
        </group>

        <!-- camera device starts  -->
        <!-- /dev/video6[0-3]$ were reserved for experimental purposes with v4l2loopback devices -->
        <!-- The following calibration parameters are for the sample camera images in packages/services/Car/surround_view/service-impl/test_data/ -->
        <device id='/dev/video60' position='front'>
            <caps>
                <!-- list of supported stream configurations -->
                <stream id='0' width='1920' height='1024' format='RGBA_8888' framerate='30'/>
            </caps>

            <!-- list of parameters -->
            <characteristics>
                <!-- Lens distortion information. See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_DISTORTION
                -->
                <parameter
                    name='LENS_DISTORTION'
                    type='float'
                    size='5'
                    value='-0.03711481733589263,-0.0014805627895442888,-0.00030212056866592464,-0.00020149538570397933,0.0'
                />

                <!-- Camera intrinsic calibration matrix. See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_INTRINSIC_CALIBRATION
                -->
                <parameter
                    name='LENS_INTRINSIC_CALIBRATION'
                    type='float'
                    size='5'
                    value='608.0026093794693,608.205469489769,968.699544102168,476.38843298898996,0.0'
                />

                <!-- Camera pose translation and rotation.  See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_POSE_TRANSLATION
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_POSE_ROTATION
                -->
                <parameter
                    name='LENS_POSE_TRANSLATION'
                    type='float'
                    size='3'
                    value='-7.8028875403817685e-02,1.4537396465103221e+00,-8.4197165554645001e-02'
                />
                <parameter
                    name='LENS_POSE_ROTATION'
                    type='float'
                    size='4'
                    value='0.9049874,0.0153074,-0.0088196,0.4250714'
                />
            </characteristics>
        </device>
        <device id='/dev/video61' position='right'>
            <caps>
                <!-- list of supported stream configurations -->
                <stream id='0' width='1920' height='1024' format='RGBA_8888' framerate='30'/>
            </caps>

            <!-- list of parameters -->
            <characteristics>
                <!-- Lens distortion information. See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_DISTORTION
                -->
                <parameter
                    name='LENS_DISTORTION'
                    type='float'
                    size='5'
                    value='-0.040116809827977926,0.0028769489398543014,-0.002651039958977229,0.00024260630476736675,0.0'
                />

                <!-- Camera intrinsic calibration matrix. See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_INTRINSIC_CALIBRATION
                -->
                <parameter
                    name='LENS_INTRINSIC_CALIBRATION'
                    type='float'
                    size='5'
                    value='607.8691721095306,608.0112887189435,975.5686146375716,481.1938786570715,0.0'
                />

                <!-- Camera pose translation and rotation.  See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_POSE_TRANSLATION
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_POSE_ROTATION
                -->
                <parameter
                    name='LENS_POSE_TRANSLATION'
                    type='float'
                    size='3'
                    value='2.9715052384687407e-01,1.1407102692699396e+00,3.0074545273489206e-01'
                />
                <parameter
                    name='LENS_POSE_ROTATION'
                    type='float'
                    size='4'
                    value='0.6293863,-0.6544242,0.2967697,0.2958542'
                />
            </characteristics>
        </device>
        <device id='/dev/video62' position='rear'>
            <caps>
                <!-- list of supported stream configurations -->
                <stream id='0' width='1920' height='1024' format='RGBA_8888' framerate='30'/>
            </caps>

            <!-- list of parameters -->
            <characteristics>
                <!-- Lens distortion information. See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_DISTORTION
                -->
                <parameter
                    name='LENS_DISTORTION'
                    type='float'
                    size='5'
                    value='-0.03998488563470043,0.0024786686909103388,-0.002354736769480817,0.00018369619088506146,0.0'
                />

                <!-- Camera intrinsic calibration matrix. See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_INTRINSIC_CALIBRATION
                -->
                <parameter
                    name='LENS_INTRINSIC_CALIBRATION'
                    type='float'
                    size='5'
                    value='608.557299289448,608.8093878512448,960.1949354417656,474.74744054048256,0.0'
                />

                <!-- Camera pose translation and rotation.  See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_POSE_TRANSLATION
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_POSE_ROTATION
                -->
                <parameter
                    name='LENS_POSE_TRANSLATION'
                    type='float'
                    size='3'
                    value='1.7115269161259747e-01,1.4376160762596599e+00,-1.9028844233159006e-02'
                />
                <parameter
                    name='LENS_POSE_ROTATION'
                    type='float'
                    size='4'
                    value='-0.0341381,-0.9101571,0.4126677,0.0124103'
                />
            </characteristics>
        </device>
        <device id='/dev/video63' position='left'>
            <caps>
                <!-- list of supported stream configurations -->
                <stream id='0' width='1920' height='1024' format='RGBA_8888' framerate='30'/>
            </caps>

            <!-- list of parameters -->
            <characteristics>
                <!-- Lens distortion information. See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_DISTORTION
                -->
                <parameter
                    name='LENS_DISTORTION'
                    type='float'
                    size='5'
                    value='-0.038096507459563965,0.0004008114278766646,-0.0013549275607082035,-5.9961182248325556e-06,0.0'
                />

                <!-- Camera intrinsic calibration matrix. See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_INTRINSIC_CALIBRATION
                -->
                <parameter
                    name='LENS_INTRINSIC_CALIBRATION'
                    type='float'
                    size='5'
                    value='608.1221963545495,608.0523818661524,943.6280444638576,474.8564698210861,0.0'
                />

                <!-- Camera pose translation and rotation.  See
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_POSE_TRANSLATION
                     https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#LENS_POSE_ROTATION
                -->
                <parameter
                    name='LENS_POSE_TRANSLATION'
                    type='float'
                    size='3'
                    value='-3.0842691427126512e-01,1.0884122033556984e+00,3.4419058255954926e-01'
                />
                <parameter
                    name='LENS_POSE_ROTATION'
                    type='float'
                    size='4'
                    value='0.612825,0.6634091,-0.3112416,0.2957406'
                />
            </characteristics>
        </device>
    </camera>

    <!-- display device starts -->
    <display>
        <device id='display0' position='driver'>
            <caps>
                <!-- list of supported inpu stream configurations -->
                <stream id='0' width='1280' height='720' format='RGBA_8888' framerate='30'/>
            </caps>
        </device>
    </display>
</configuration>

