cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ext-ctrls-camera.rst (27088B)


      1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
      2
      3.. _camera-controls:
      4
      5************************
      6Camera Control Reference
      7************************
      8
      9The Camera class includes controls for mechanical (or equivalent
     10digital) features of a device such as controllable lenses or sensors.
     11
     12
     13.. _camera-control-id:
     14
     15Camera Control IDs
     16==================
     17
     18``V4L2_CID_CAMERA_CLASS (class)``
     19    The Camera class descriptor. Calling
     20    :ref:`VIDIOC_QUERYCTRL` for this control will
     21    return a description of this control class.
     22
     23.. _v4l2-exposure-auto-type:
     24
     25``V4L2_CID_EXPOSURE_AUTO``
     26    (enum)
     27
     28enum v4l2_exposure_auto_type -
     29    Enables automatic adjustments of the exposure time and/or iris
     30    aperture. The effect of manual changes of the exposure time or iris
     31    aperture while these features are enabled is undefined, drivers
     32    should ignore such requests. Possible values are:
     33
     34
     35.. tabularcolumns:: |p{7.1cm}|p{10.4cm}|
     36
     37.. flat-table::
     38    :header-rows:  0
     39    :stub-columns: 0
     40
     41    * - ``V4L2_EXPOSURE_AUTO``
     42      - Automatic exposure time, automatic iris aperture.
     43    * - ``V4L2_EXPOSURE_MANUAL``
     44      - Manual exposure time, manual iris.
     45    * - ``V4L2_EXPOSURE_SHUTTER_PRIORITY``
     46      - Manual exposure time, auto iris.
     47    * - ``V4L2_EXPOSURE_APERTURE_PRIORITY``
     48      - Auto exposure time, manual iris.
     49
     50
     51
     52``V4L2_CID_EXPOSURE_ABSOLUTE (integer)``
     53    Determines the exposure time of the camera sensor. The exposure time
     54    is limited by the frame interval. Drivers should interpret the
     55    values as 100 µs units, where the value 1 stands for 1/10000th of a
     56    second, 10000 for 1 second and 100000 for 10 seconds.
     57
     58``V4L2_CID_EXPOSURE_AUTO_PRIORITY (boolean)``
     59    When ``V4L2_CID_EXPOSURE_AUTO`` is set to ``AUTO`` or
     60    ``APERTURE_PRIORITY``, this control determines if the device may
     61    dynamically vary the frame rate. By default this feature is disabled
     62    (0) and the frame rate must remain constant.
     63
     64``V4L2_CID_AUTO_EXPOSURE_BIAS (integer menu)``
     65    Determines the automatic exposure compensation, it is effective only
     66    when ``V4L2_CID_EXPOSURE_AUTO`` control is set to ``AUTO``,
     67    ``SHUTTER_PRIORITY`` or ``APERTURE_PRIORITY``. It is expressed in
     68    terms of EV, drivers should interpret the values as 0.001 EV units,
     69    where the value 1000 stands for +1 EV.
     70
     71    Increasing the exposure compensation value is equivalent to
     72    decreasing the exposure value (EV) and will increase the amount of
     73    light at the image sensor. The camera performs the exposure
     74    compensation by adjusting absolute exposure time and/or aperture.
     75
     76.. _v4l2-exposure-metering:
     77
     78``V4L2_CID_EXPOSURE_METERING``
     79    (enum)
     80
     81enum v4l2_exposure_metering -
     82    Determines how the camera measures the amount of light available for
     83    the frame exposure. Possible values are:
     84
     85.. tabularcolumns:: |p{8.7cm}|p{8.7cm}|
     86
     87.. flat-table::
     88    :header-rows:  0
     89    :stub-columns: 0
     90
     91    * - ``V4L2_EXPOSURE_METERING_AVERAGE``
     92      - Use the light information coming from the entire frame and average
     93	giving no weighting to any particular portion of the metered area.
     94    * - ``V4L2_EXPOSURE_METERING_CENTER_WEIGHTED``
     95      - Average the light information coming from the entire frame giving
     96	priority to the center of the metered area.
     97    * - ``V4L2_EXPOSURE_METERING_SPOT``
     98      - Measure only very small area at the center of the frame.
     99    * - ``V4L2_EXPOSURE_METERING_MATRIX``
    100      - A multi-zone metering. The light intensity is measured in several
    101	points of the frame and the results are combined. The algorithm of
    102	the zones selection and their significance in calculating the
    103	final value is device dependent.
    104
    105
    106
    107``V4L2_CID_PAN_RELATIVE (integer)``
    108    This control turns the camera horizontally by the specified amount.
    109    The unit is undefined. A positive value moves the camera to the
    110    right (clockwise when viewed from above), a negative value to the
    111    left. A value of zero does not cause motion. This is a write-only
    112    control.
    113
    114``V4L2_CID_TILT_RELATIVE (integer)``
    115    This control turns the camera vertically by the specified amount.
    116    The unit is undefined. A positive value moves the camera up, a
    117    negative value down. A value of zero does not cause motion. This is
    118    a write-only control.
    119
    120``V4L2_CID_PAN_RESET (button)``
    121    When this control is set, the camera moves horizontally to the
    122    default position.
    123
    124``V4L2_CID_TILT_RESET (button)``
    125    When this control is set, the camera moves vertically to the default
    126    position.
    127
    128``V4L2_CID_PAN_ABSOLUTE (integer)``
    129    This control turns the camera horizontally to the specified
    130    position. Positive values move the camera to the right (clockwise
    131    when viewed from above), negative values to the left. Drivers should
    132    interpret the values as arc seconds, with valid values between -180
    133    * 3600 and +180 * 3600 inclusive.
    134
    135``V4L2_CID_TILT_ABSOLUTE (integer)``
    136    This control turns the camera vertically to the specified position.
    137    Positive values move the camera up, negative values down. Drivers
    138    should interpret the values as arc seconds, with valid values
    139    between -180 * 3600 and +180 * 3600 inclusive.
    140
    141``V4L2_CID_FOCUS_ABSOLUTE (integer)``
    142    This control sets the focal point of the camera to the specified
    143    position. The unit is undefined. Positive values set the focus
    144    closer to the camera, negative values towards infinity.
    145
    146``V4L2_CID_FOCUS_RELATIVE (integer)``
    147    This control moves the focal point of the camera by the specified
    148    amount. The unit is undefined. Positive values move the focus closer
    149    to the camera, negative values towards infinity. This is a
    150    write-only control.
    151
    152``V4L2_CID_FOCUS_AUTO (boolean)``
    153    Enables continuous automatic focus adjustments. The effect of manual
    154    focus adjustments while this feature is enabled is undefined,
    155    drivers should ignore such requests.
    156
    157``V4L2_CID_AUTO_FOCUS_START (button)``
    158    Starts single auto focus process. The effect of setting this control
    159    when ``V4L2_CID_FOCUS_AUTO`` is set to ``TRUE`` (1) is undefined,
    160    drivers should ignore such requests.
    161
    162``V4L2_CID_AUTO_FOCUS_STOP (button)``
    163    Aborts automatic focusing started with ``V4L2_CID_AUTO_FOCUS_START``
    164    control. It is effective only when the continuous autofocus is
    165    disabled, that is when ``V4L2_CID_FOCUS_AUTO`` control is set to
    166    ``FALSE`` (0).
    167
    168.. _v4l2-auto-focus-status:
    169
    170``V4L2_CID_AUTO_FOCUS_STATUS (bitmask)``
    171    The automatic focus status. This is a read-only control.
    172
    173    Setting ``V4L2_LOCK_FOCUS`` lock bit of the ``V4L2_CID_3A_LOCK``
    174    control may stop updates of the ``V4L2_CID_AUTO_FOCUS_STATUS``
    175    control value.
    176
    177.. tabularcolumns:: |p{6.8cm}|p{10.7cm}|
    178
    179.. flat-table::
    180    :header-rows:  0
    181    :stub-columns: 0
    182
    183    * - ``V4L2_AUTO_FOCUS_STATUS_IDLE``
    184      - Automatic focus is not active.
    185    * - ``V4L2_AUTO_FOCUS_STATUS_BUSY``
    186      - Automatic focusing is in progress.
    187    * - ``V4L2_AUTO_FOCUS_STATUS_REACHED``
    188      - Focus has been reached.
    189    * - ``V4L2_AUTO_FOCUS_STATUS_FAILED``
    190      - Automatic focus has failed, the driver will not transition from
    191	this state until another action is performed by an application.
    192
    193
    194
    195.. _v4l2-auto-focus-range:
    196
    197``V4L2_CID_AUTO_FOCUS_RANGE``
    198    (enum)
    199
    200enum v4l2_auto_focus_range -
    201    Determines auto focus distance range for which lens may be adjusted.
    202
    203.. tabularcolumns:: |p{6.9cm}|p{10.6cm}|
    204
    205.. flat-table::
    206    :header-rows:  0
    207    :stub-columns: 0
    208
    209    * - ``V4L2_AUTO_FOCUS_RANGE_AUTO``
    210      - The camera automatically selects the focus range.
    211    * - ``V4L2_AUTO_FOCUS_RANGE_NORMAL``
    212      - Normal distance range, limited for best automatic focus
    213	performance.
    214    * - ``V4L2_AUTO_FOCUS_RANGE_MACRO``
    215      - Macro (close-up) auto focus. The camera will use its minimum
    216	possible distance for auto focus.
    217    * - ``V4L2_AUTO_FOCUS_RANGE_INFINITY``
    218      - The lens is set to focus on an object at infinite distance.
    219
    220
    221
    222``V4L2_CID_ZOOM_ABSOLUTE (integer)``
    223    Specify the objective lens focal length as an absolute value. The
    224    zoom unit is driver-specific and its value should be a positive
    225    integer.
    226
    227``V4L2_CID_ZOOM_RELATIVE (integer)``
    228    Specify the objective lens focal length relatively to the current
    229    value. Positive values move the zoom lens group towards the
    230    telephoto direction, negative values towards the wide-angle
    231    direction. The zoom unit is driver-specific. This is a write-only
    232    control.
    233
    234``V4L2_CID_ZOOM_CONTINUOUS (integer)``
    235    Move the objective lens group at the specified speed until it
    236    reaches physical device limits or until an explicit request to stop
    237    the movement. A positive value moves the zoom lens group towards the
    238    telephoto direction. A value of zero stops the zoom lens group
    239    movement. A negative value moves the zoom lens group towards the
    240    wide-angle direction. The zoom speed unit is driver-specific.
    241
    242``V4L2_CID_IRIS_ABSOLUTE (integer)``
    243    This control sets the camera's aperture to the specified value. The
    244    unit is undefined. Larger values open the iris wider, smaller values
    245    close it.
    246
    247``V4L2_CID_IRIS_RELATIVE (integer)``
    248    This control modifies the camera's aperture by the specified amount.
    249    The unit is undefined. Positive values open the iris one step
    250    further, negative values close it one step further. This is a
    251    write-only control.
    252
    253``V4L2_CID_PRIVACY (boolean)``
    254    Prevent video from being acquired by the camera. When this control
    255    is set to ``TRUE`` (1), no image can be captured by the camera.
    256    Common means to enforce privacy are mechanical obturation of the
    257    sensor and firmware image processing, but the device is not
    258    restricted to these methods. Devices that implement the privacy
    259    control must support read access and may support write access.
    260
    261``V4L2_CID_BAND_STOP_FILTER (integer)``
    262    Switch the band-stop filter of a camera sensor on or off, or specify
    263    its strength. Such band-stop filters can be used, for example, to
    264    filter out the fluorescent light component.
    265
    266.. _v4l2-auto-n-preset-white-balance:
    267
    268``V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE``
    269    (enum)
    270
    271enum v4l2_auto_n_preset_white_balance -
    272    Sets white balance to automatic, manual or a preset. The presets
    273    determine color temperature of the light as a hint to the camera for
    274    white balance adjustments resulting in most accurate color
    275    representation. The following white balance presets are listed in
    276    order of increasing color temperature.
    277
    278.. tabularcolumns:: |p{7.4cm}|p{10.1cm}|
    279
    280.. flat-table::
    281    :header-rows:  0
    282    :stub-columns: 0
    283
    284    * - ``V4L2_WHITE_BALANCE_MANUAL``
    285      - Manual white balance.
    286    * - ``V4L2_WHITE_BALANCE_AUTO``
    287      - Automatic white balance adjustments.
    288    * - ``V4L2_WHITE_BALANCE_INCANDESCENT``
    289      - White balance setting for incandescent (tungsten) lighting. It
    290	generally cools down the colors and corresponds approximately to
    291	2500...3500 K color temperature range.
    292    * - ``V4L2_WHITE_BALANCE_FLUORESCENT``
    293      - White balance preset for fluorescent lighting. It corresponds
    294	approximately to 4000...5000 K color temperature.
    295    * - ``V4L2_WHITE_BALANCE_FLUORESCENT_H``
    296      - With this setting the camera will compensate for fluorescent H
    297	lighting.
    298    * - ``V4L2_WHITE_BALANCE_HORIZON``
    299      - White balance setting for horizon daylight. It corresponds
    300	approximately to 5000 K color temperature.
    301    * - ``V4L2_WHITE_BALANCE_DAYLIGHT``
    302      - White balance preset for daylight (with clear sky). It corresponds
    303	approximately to 5000...6500 K color temperature.
    304    * - ``V4L2_WHITE_BALANCE_FLASH``
    305      - With this setting the camera will compensate for the flash light.
    306	It slightly warms up the colors and corresponds roughly to
    307	5000...5500 K color temperature.
    308    * - ``V4L2_WHITE_BALANCE_CLOUDY``
    309      - White balance preset for moderately overcast sky. This option
    310	corresponds approximately to 6500...8000 K color temperature
    311	range.
    312    * - ``V4L2_WHITE_BALANCE_SHADE``
    313      - White balance preset for shade or heavily overcast sky. It
    314	corresponds approximately to 9000...10000 K color temperature.
    315
    316
    317
    318.. _v4l2-wide-dynamic-range:
    319
    320``V4L2_CID_WIDE_DYNAMIC_RANGE (boolean)``
    321    Enables or disables the camera's wide dynamic range feature. This
    322    feature allows to obtain clear images in situations where intensity
    323    of the illumination varies significantly throughout the scene, i.e.
    324    there are simultaneously very dark and very bright areas. It is most
    325    commonly realized in cameras by combining two subsequent frames with
    326    different exposure times.  [#f1]_
    327
    328.. _v4l2-image-stabilization:
    329
    330``V4L2_CID_IMAGE_STABILIZATION (boolean)``
    331    Enables or disables image stabilization.
    332
    333``V4L2_CID_ISO_SENSITIVITY (integer menu)``
    334    Determines ISO equivalent of an image sensor indicating the sensor's
    335    sensitivity to light. The numbers are expressed in arithmetic scale,
    336    as per :ref:`iso12232` standard, where doubling the sensor
    337    sensitivity is represented by doubling the numerical ISO value.
    338    Applications should interpret the values as standard ISO values
    339    multiplied by 1000, e.g. control value 800 stands for ISO 0.8.
    340    Drivers will usually support only a subset of standard ISO values.
    341    The effect of setting this control while the
    342    ``V4L2_CID_ISO_SENSITIVITY_AUTO`` control is set to a value other
    343    than ``V4L2_CID_ISO_SENSITIVITY_MANUAL`` is undefined, drivers
    344    should ignore such requests.
    345
    346.. _v4l2-iso-sensitivity-auto-type:
    347
    348``V4L2_CID_ISO_SENSITIVITY_AUTO``
    349    (enum)
    350
    351enum v4l2_iso_sensitivity_type -
    352    Enables or disables automatic ISO sensitivity adjustments.
    353
    354
    355
    356.. flat-table::
    357    :header-rows:  0
    358    :stub-columns: 0
    359
    360    * - ``V4L2_CID_ISO_SENSITIVITY_MANUAL``
    361      - Manual ISO sensitivity.
    362    * - ``V4L2_CID_ISO_SENSITIVITY_AUTO``
    363      - Automatic ISO sensitivity adjustments.
    364
    365
    366
    367.. _v4l2-scene-mode:
    368
    369``V4L2_CID_SCENE_MODE``
    370    (enum)
    371
    372enum v4l2_scene_mode -
    373    This control allows to select scene programs as the camera automatic
    374    modes optimized for common shooting scenes. Within these modes the
    375    camera determines best exposure, aperture, focusing, light metering,
    376    white balance and equivalent sensitivity. The controls of those
    377    parameters are influenced by the scene mode control. An exact
    378    behavior in each mode is subject to the camera specification.
    379
    380    When the scene mode feature is not used, this control should be set
    381    to ``V4L2_SCENE_MODE_NONE`` to make sure the other possibly related
    382    controls are accessible. The following scene programs are defined:
    383
    384.. raw:: latex
    385
    386    \small
    387
    388.. tabularcolumns:: |p{5.9cm}|p{11.6cm}|
    389
    390.. cssclass:: longtable
    391
    392.. flat-table::
    393    :header-rows:  0
    394    :stub-columns: 0
    395
    396    * - ``V4L2_SCENE_MODE_NONE``
    397      - The scene mode feature is disabled.
    398    * - ``V4L2_SCENE_MODE_BACKLIGHT``
    399      - Backlight. Compensates for dark shadows when light is coming from
    400	behind a subject, also by automatically turning on the flash.
    401    * - ``V4L2_SCENE_MODE_BEACH_SNOW``
    402      - Beach and snow. This mode compensates for all-white or bright
    403	scenes, which tend to look gray and low contrast, when camera's
    404	automatic exposure is based on an average scene brightness. To
    405	compensate, this mode automatically slightly overexposes the
    406	frames. The white balance may also be adjusted to compensate for
    407	the fact that reflected snow looks bluish rather than white.
    408    * - ``V4L2_SCENE_MODE_CANDLELIGHT``
    409      - Candle light. The camera generally raises the ISO sensitivity and
    410	lowers the shutter speed. This mode compensates for relatively
    411	close subject in the scene. The flash is disabled in order to
    412	preserve the ambiance of the light.
    413    * - ``V4L2_SCENE_MODE_DAWN_DUSK``
    414      - Dawn and dusk. Preserves the colors seen in low natural light
    415	before dusk and after down. The camera may turn off the flash, and
    416	automatically focus at infinity. It will usually boost saturation
    417	and lower the shutter speed.
    418    * - ``V4L2_SCENE_MODE_FALL_COLORS``
    419      - Fall colors. Increases saturation and adjusts white balance for
    420	color enhancement. Pictures of autumn leaves get saturated reds
    421	and yellows.
    422    * - ``V4L2_SCENE_MODE_FIREWORKS``
    423      - Fireworks. Long exposure times are used to capture the expanding
    424	burst of light from a firework. The camera may invoke image
    425	stabilization.
    426    * - ``V4L2_SCENE_MODE_LANDSCAPE``
    427      - Landscape. The camera may choose a small aperture to provide deep
    428	depth of field and long exposure duration to help capture detail
    429	in dim light conditions. The focus is fixed at infinity. Suitable
    430	for distant and wide scenery.
    431    * - ``V4L2_SCENE_MODE_NIGHT``
    432      - Night, also known as Night Landscape. Designed for low light
    433	conditions, it preserves detail in the dark areas without blowing
    434	out bright objects. The camera generally sets itself to a
    435	medium-to-high ISO sensitivity, with a relatively long exposure
    436	time, and turns flash off. As such, there will be increased image
    437	noise and the possibility of blurred image.
    438    * - ``V4L2_SCENE_MODE_PARTY_INDOOR``
    439      - Party and indoor. Designed to capture indoor scenes that are lit
    440	by indoor background lighting as well as the flash. The camera
    441	usually increases ISO sensitivity, and adjusts exposure for the
    442	low light conditions.
    443    * - ``V4L2_SCENE_MODE_PORTRAIT``
    444      - Portrait. The camera adjusts the aperture so that the depth of
    445	field is reduced, which helps to isolate the subject against a
    446	smooth background. Most cameras recognize the presence of faces in
    447	the scene and focus on them. The color hue is adjusted to enhance
    448	skin tones. The intensity of the flash is often reduced.
    449    * - ``V4L2_SCENE_MODE_SPORTS``
    450      - Sports. Significantly increases ISO and uses a fast shutter speed
    451	to freeze motion of rapidly-moving subjects. Increased image noise
    452	may be seen in this mode.
    453    * - ``V4L2_SCENE_MODE_SUNSET``
    454      - Sunset. Preserves deep hues seen in sunsets and sunrises. It bumps
    455	up the saturation.
    456    * - ``V4L2_SCENE_MODE_TEXT``
    457      - Text. It applies extra contrast and sharpness, it is typically a
    458	black-and-white mode optimized for readability. Automatic focus
    459	may be switched to close-up mode and this setting may also involve
    460	some lens-distortion correction.
    461
    462.. raw:: latex
    463
    464    \normalsize
    465
    466
    467``V4L2_CID_3A_LOCK (bitmask)``
    468    This control locks or unlocks the automatic focus, exposure and
    469    white balance. The automatic adjustments can be paused independently
    470    by setting the corresponding lock bit to 1. The camera then retains
    471    the settings until the lock bit is cleared. The following lock bits
    472    are defined:
    473
    474    When a given algorithm is not enabled, drivers should ignore
    475    requests to lock it and should return no error. An example might be
    476    an application setting bit ``V4L2_LOCK_WHITE_BALANCE`` when the
    477    ``V4L2_CID_AUTO_WHITE_BALANCE`` control is set to ``FALSE``. The
    478    value of this control may be changed by exposure, white balance or
    479    focus controls.
    480
    481
    482
    483.. flat-table::
    484    :header-rows:  0
    485    :stub-columns: 0
    486
    487    * - ``V4L2_LOCK_EXPOSURE``
    488      - Automatic exposure adjustments lock.
    489    * - ``V4L2_LOCK_WHITE_BALANCE``
    490      - Automatic white balance adjustments lock.
    491    * - ``V4L2_LOCK_FOCUS``
    492      - Automatic focus lock.
    493
    494
    495
    496``V4L2_CID_PAN_SPEED (integer)``
    497    This control turns the camera horizontally at the specific speed.
    498    The unit is undefined. A positive value moves the camera to the
    499    right (clockwise when viewed from above), a negative value to the
    500    left. A value of zero stops the motion if one is in progress and has
    501    no effect otherwise.
    502
    503``V4L2_CID_TILT_SPEED (integer)``
    504    This control turns the camera vertically at the specified speed. The
    505    unit is undefined. A positive value moves the camera up, a negative
    506    value down. A value of zero stops the motion if one is in progress
    507    and has no effect otherwise.
    508
    509``V4L2_CID_CAMERA_ORIENTATION (menu)``
    510    This read-only control describes the camera orientation by reporting its
    511    mounting position on the device where the camera is installed. The control
    512    value is constant and not modifiable by software. This control is
    513    particularly meaningful for devices which have a well defined orientation,
    514    such as phones, laptops and portable devices since the control is expressed
    515    as a position relative to the device's intended usage orientation. For
    516    example, a camera installed on the user-facing side of a phone, a tablet or
    517    a laptop device is said to be have ``V4L2_CAMERA_ORIENTATION_FRONT``
    518    orientation, while a camera installed on the opposite side of the front one
    519    is said to be have ``V4L2_CAMERA_ORIENTATION_BACK`` orientation. Camera
    520    sensors not directly attached to the device, or attached in a way that
    521    allows them to move freely, such as webcams and digital cameras, are said to
    522    have the ``V4L2_CAMERA_ORIENTATION_EXTERNAL`` orientation.
    523
    524
    525.. tabularcolumns:: |p{7.7cm}|p{9.8cm}|
    526
    527.. flat-table::
    528    :header-rows:  0
    529    :stub-columns: 0
    530
    531    * - ``V4L2_CAMERA_ORIENTATION_FRONT``
    532      - The camera is oriented towards the user facing side of the device.
    533    * - ``V4L2_CAMERA_ORIENTATION_BACK``
    534      - The camera is oriented towards the back facing side of the device.
    535    * - ``V4L2_CAMERA_ORIENTATION_EXTERNAL``
    536      - The camera is not directly attached to the device and is freely movable.
    537
    538
    539
    540``V4L2_CID_CAMERA_SENSOR_ROTATION (integer)``
    541    This read-only control describes the rotation correction in degrees in the
    542    counter-clockwise direction to be applied to the captured images once
    543    captured to memory to compensate for the camera sensor mounting rotation.
    544
    545    For a precise definition of the sensor mounting rotation refer to the
    546    extensive description of the 'rotation' properties in the device tree
    547    bindings file 'video-interfaces.txt'.
    548
    549    A few examples are below reported, using a shark swimming from left to
    550    right in front of the user as the example scene to capture. ::
    551
    552                 0               X-axis
    553               0 +------------------------------------->
    554                 !
    555                 !
    556                 !
    557                 !           |\____)\___
    558                 !           ) _____  __`<
    559                 !           |/     )/
    560                 !
    561                 !
    562                 !
    563                 V
    564               Y-axis
    565
    566    Example one - Webcam
    567
    568    Assuming you can bring your laptop with you while swimming with sharks,
    569    the camera module of the laptop is installed on the user facing part of a
    570    laptop screen casing, and is typically used for video calls. The captured
    571    images are meant to be displayed in landscape mode (width > height) on the
    572    laptop screen.
    573
    574    The camera is typically mounted upside-down to compensate the lens optical
    575    inversion effect. In this case the value of the
    576    V4L2_CID_CAMERA_SENSOR_ROTATION control is 0, no rotation is required to
    577    display images correctly to the user.
    578
    579    If the camera sensor is not mounted upside-down it is required to compensate
    580    the lens optical inversion effect and the value of the
    581    V4L2_CID_CAMERA_SENSOR_ROTATION control is 180 degrees, as images will
    582    result rotated when captured to memory. ::
    583
    584                 +--------------------------------------+
    585                 !                                      !
    586                 !                                      !
    587                 !                                      !
    588                 !              __/(_____/|             !
    589                 !            >.___  ____ (             !
    590                 !                 \(    \|             !
    591                 !                                      !
    592                 !                                      !
    593                 !                                      !
    594                 +--------------------------------------+
    595
    596    A software rotation correction of 180 degrees has to be applied to correctly
    597    display the image on the user screen. ::
    598
    599                 +--------------------------------------+
    600                 !                                      !
    601                 !                                      !
    602                 !                                      !
    603                 !             |\____)\___              !
    604                 !             ) _____  __`<            !
    605                 !             |/     )/                !
    606                 !                                      !
    607                 !                                      !
    608                 !                                      !
    609                 +--------------------------------------+
    610
    611    Example two - Phone camera
    612
    613    It is more handy to go and swim with sharks with only your mobile phone
    614    with you and take pictures with the camera that is installed on the back
    615    side of the device, facing away from the user. The captured images are meant
    616    to be displayed in portrait mode (height > width) to match the device screen
    617    orientation and the device usage orientation used when taking the picture.
    618
    619    The camera sensor is typically mounted with its pixel array longer side
    620    aligned to the device longer side, upside-down mounted to compensate for
    621    the lens optical inversion effect.
    622
    623    The images once captured to memory will be rotated and the value of the
    624    V4L2_CID_CAMERA_SENSOR_ROTATION will report a 90 degree rotation. ::
    625
    626
    627                 +-------------------------------------+
    628                 |                 _ _                 |
    629                 |                \   /                |
    630                 |                 | |                 |
    631                 |                 | |                 |
    632                 |                 |  >                |
    633                 |                <  |                 |
    634                 |                 | |                 |
    635                 |                   .                 |
    636                 |                  V                  |
    637                 +-------------------------------------+
    638
    639    A correction of 90 degrees in counter-clockwise direction has to be
    640    applied to correctly display the image in portrait mode on the device
    641    screen. ::
    642
    643                          +--------------------+
    644                          |                    |
    645                          |                    |
    646                          |                    |
    647                          |                    |
    648                          |                    |
    649                          |                    |
    650                          |   |\____)\___      |
    651                          |   ) _____  __`<    |
    652                          |   |/     )/        |
    653                          |                    |
    654                          |                    |
    655                          |                    |
    656                          |                    |
    657                          |                    |
    658                          +--------------------+
    659
    660
    661.. [#f1]
    662   This control may be changed to a menu control in the future, if more
    663   options are required.