18c2ecf20Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci.. _camera-controls:
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci************************
68c2ecf20Sopenharmony_ciCamera Control Reference
78c2ecf20Sopenharmony_ci************************
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciThe Camera class includes controls for mechanical (or equivalent
108c2ecf20Sopenharmony_cidigital) features of a device such as controllable lenses or sensors.
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci.. _camera-control-id:
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciCamera Control IDs
168c2ecf20Sopenharmony_ci==================
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci``V4L2_CID_CAMERA_CLASS (class)``
198c2ecf20Sopenharmony_ci    The Camera class descriptor. Calling
208c2ecf20Sopenharmony_ci    :ref:`VIDIOC_QUERYCTRL` for this control will
218c2ecf20Sopenharmony_ci    return a description of this control class.
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci.. _v4l2-exposure-auto-type:
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci``V4L2_CID_EXPOSURE_AUTO``
268c2ecf20Sopenharmony_ci    (enum)
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_cienum v4l2_exposure_auto_type -
298c2ecf20Sopenharmony_ci    Enables automatic adjustments of the exposure time and/or iris
308c2ecf20Sopenharmony_ci    aperture. The effect of manual changes of the exposure time or iris
318c2ecf20Sopenharmony_ci    aperture while these features are enabled is undefined, drivers
328c2ecf20Sopenharmony_ci    should ignore such requests. Possible values are:
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci.. flat-table::
378c2ecf20Sopenharmony_ci    :header-rows:  0
388c2ecf20Sopenharmony_ci    :stub-columns: 0
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci    * - ``V4L2_EXPOSURE_AUTO``
418c2ecf20Sopenharmony_ci      - Automatic exposure time, automatic iris aperture.
428c2ecf20Sopenharmony_ci    * - ``V4L2_EXPOSURE_MANUAL``
438c2ecf20Sopenharmony_ci      - Manual exposure time, manual iris.
448c2ecf20Sopenharmony_ci    * - ``V4L2_EXPOSURE_SHUTTER_PRIORITY``
458c2ecf20Sopenharmony_ci      - Manual exposure time, auto iris.
468c2ecf20Sopenharmony_ci    * - ``V4L2_EXPOSURE_APERTURE_PRIORITY``
478c2ecf20Sopenharmony_ci      - Auto exposure time, manual iris.
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci``V4L2_CID_EXPOSURE_ABSOLUTE (integer)``
528c2ecf20Sopenharmony_ci    Determines the exposure time of the camera sensor. The exposure time
538c2ecf20Sopenharmony_ci    is limited by the frame interval. Drivers should interpret the
548c2ecf20Sopenharmony_ci    values as 100 µs units, where the value 1 stands for 1/10000th of a
558c2ecf20Sopenharmony_ci    second, 10000 for 1 second and 100000 for 10 seconds.
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci``V4L2_CID_EXPOSURE_AUTO_PRIORITY (boolean)``
588c2ecf20Sopenharmony_ci    When ``V4L2_CID_EXPOSURE_AUTO`` is set to ``AUTO`` or
598c2ecf20Sopenharmony_ci    ``APERTURE_PRIORITY``, this control determines if the device may
608c2ecf20Sopenharmony_ci    dynamically vary the frame rate. By default this feature is disabled
618c2ecf20Sopenharmony_ci    (0) and the frame rate must remain constant.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci``V4L2_CID_AUTO_EXPOSURE_BIAS (integer menu)``
648c2ecf20Sopenharmony_ci    Determines the automatic exposure compensation, it is effective only
658c2ecf20Sopenharmony_ci    when ``V4L2_CID_EXPOSURE_AUTO`` control is set to ``AUTO``,
668c2ecf20Sopenharmony_ci    ``SHUTTER_PRIORITY`` or ``APERTURE_PRIORITY``. It is expressed in
678c2ecf20Sopenharmony_ci    terms of EV, drivers should interpret the values as 0.001 EV units,
688c2ecf20Sopenharmony_ci    where the value 1000 stands for +1 EV.
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci    Increasing the exposure compensation value is equivalent to
718c2ecf20Sopenharmony_ci    decreasing the exposure value (EV) and will increase the amount of
728c2ecf20Sopenharmony_ci    light at the image sensor. The camera performs the exposure
738c2ecf20Sopenharmony_ci    compensation by adjusting absolute exposure time and/or aperture.
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci.. _v4l2-exposure-metering:
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci``V4L2_CID_EXPOSURE_METERING``
788c2ecf20Sopenharmony_ci    (enum)
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_cienum v4l2_exposure_metering -
818c2ecf20Sopenharmony_ci    Determines how the camera measures the amount of light available for
828c2ecf20Sopenharmony_ci    the frame exposure. Possible values are:
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci.. tabularcolumns:: |p{8.7cm}|p{8.8cm}|
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci.. flat-table::
878c2ecf20Sopenharmony_ci    :header-rows:  0
888c2ecf20Sopenharmony_ci    :stub-columns: 0
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci    * - ``V4L2_EXPOSURE_METERING_AVERAGE``
918c2ecf20Sopenharmony_ci      - Use the light information coming from the entire frame and average
928c2ecf20Sopenharmony_ci	giving no weighting to any particular portion of the metered area.
938c2ecf20Sopenharmony_ci    * - ``V4L2_EXPOSURE_METERING_CENTER_WEIGHTED``
948c2ecf20Sopenharmony_ci      - Average the light information coming from the entire frame giving
958c2ecf20Sopenharmony_ci	priority to the center of the metered area.
968c2ecf20Sopenharmony_ci    * - ``V4L2_EXPOSURE_METERING_SPOT``
978c2ecf20Sopenharmony_ci      - Measure only very small area at the center of the frame.
988c2ecf20Sopenharmony_ci    * - ``V4L2_EXPOSURE_METERING_MATRIX``
998c2ecf20Sopenharmony_ci      - A multi-zone metering. The light intensity is measured in several
1008c2ecf20Sopenharmony_ci	points of the frame and the results are combined. The algorithm of
1018c2ecf20Sopenharmony_ci	the zones selection and their significance in calculating the
1028c2ecf20Sopenharmony_ci	final value is device dependent.
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci``V4L2_CID_PAN_RELATIVE (integer)``
1078c2ecf20Sopenharmony_ci    This control turns the camera horizontally by the specified amount.
1088c2ecf20Sopenharmony_ci    The unit is undefined. A positive value moves the camera to the
1098c2ecf20Sopenharmony_ci    right (clockwise when viewed from above), a negative value to the
1108c2ecf20Sopenharmony_ci    left. A value of zero does not cause motion. This is a write-only
1118c2ecf20Sopenharmony_ci    control.
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci``V4L2_CID_TILT_RELATIVE (integer)``
1148c2ecf20Sopenharmony_ci    This control turns the camera vertically by the specified amount.
1158c2ecf20Sopenharmony_ci    The unit is undefined. A positive value moves the camera up, a
1168c2ecf20Sopenharmony_ci    negative value down. A value of zero does not cause motion. This is
1178c2ecf20Sopenharmony_ci    a write-only control.
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci``V4L2_CID_PAN_RESET (button)``
1208c2ecf20Sopenharmony_ci    When this control is set, the camera moves horizontally to the
1218c2ecf20Sopenharmony_ci    default position.
1228c2ecf20Sopenharmony_ci
1238c2ecf20Sopenharmony_ci``V4L2_CID_TILT_RESET (button)``
1248c2ecf20Sopenharmony_ci    When this control is set, the camera moves vertically to the default
1258c2ecf20Sopenharmony_ci    position.
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ci``V4L2_CID_PAN_ABSOLUTE (integer)``
1288c2ecf20Sopenharmony_ci    This control turns the camera horizontally to the specified
1298c2ecf20Sopenharmony_ci    position. Positive values move the camera to the right (clockwise
1308c2ecf20Sopenharmony_ci    when viewed from above), negative values to the left. Drivers should
1318c2ecf20Sopenharmony_ci    interpret the values as arc seconds, with valid values between -180
1328c2ecf20Sopenharmony_ci    * 3600 and +180 * 3600 inclusive.
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ci``V4L2_CID_TILT_ABSOLUTE (integer)``
1358c2ecf20Sopenharmony_ci    This control turns the camera vertically to the specified position.
1368c2ecf20Sopenharmony_ci    Positive values move the camera up, negative values down. Drivers
1378c2ecf20Sopenharmony_ci    should interpret the values as arc seconds, with valid values
1388c2ecf20Sopenharmony_ci    between -180 * 3600 and +180 * 3600 inclusive.
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ci``V4L2_CID_FOCUS_ABSOLUTE (integer)``
1418c2ecf20Sopenharmony_ci    This control sets the focal point of the camera to the specified
1428c2ecf20Sopenharmony_ci    position. The unit is undefined. Positive values set the focus
1438c2ecf20Sopenharmony_ci    closer to the camera, negative values towards infinity.
1448c2ecf20Sopenharmony_ci
1458c2ecf20Sopenharmony_ci``V4L2_CID_FOCUS_RELATIVE (integer)``
1468c2ecf20Sopenharmony_ci    This control moves the focal point of the camera by the specified
1478c2ecf20Sopenharmony_ci    amount. The unit is undefined. Positive values move the focus closer
1488c2ecf20Sopenharmony_ci    to the camera, negative values towards infinity. This is a
1498c2ecf20Sopenharmony_ci    write-only control.
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci``V4L2_CID_FOCUS_AUTO (boolean)``
1528c2ecf20Sopenharmony_ci    Enables continuous automatic focus adjustments. The effect of manual
1538c2ecf20Sopenharmony_ci    focus adjustments while this feature is enabled is undefined,
1548c2ecf20Sopenharmony_ci    drivers should ignore such requests.
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci``V4L2_CID_AUTO_FOCUS_START (button)``
1578c2ecf20Sopenharmony_ci    Starts single auto focus process. The effect of setting this control
1588c2ecf20Sopenharmony_ci    when ``V4L2_CID_FOCUS_AUTO`` is set to ``TRUE`` (1) is undefined,
1598c2ecf20Sopenharmony_ci    drivers should ignore such requests.
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ci``V4L2_CID_AUTO_FOCUS_STOP (button)``
1628c2ecf20Sopenharmony_ci    Aborts automatic focusing started with ``V4L2_CID_AUTO_FOCUS_START``
1638c2ecf20Sopenharmony_ci    control. It is effective only when the continuous autofocus is
1648c2ecf20Sopenharmony_ci    disabled, that is when ``V4L2_CID_FOCUS_AUTO`` control is set to
1658c2ecf20Sopenharmony_ci    ``FALSE`` (0).
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci.. _v4l2-auto-focus-status:
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_ci``V4L2_CID_AUTO_FOCUS_STATUS (bitmask)``
1708c2ecf20Sopenharmony_ci    The automatic focus status. This is a read-only control.
1718c2ecf20Sopenharmony_ci
1728c2ecf20Sopenharmony_ci    Setting ``V4L2_LOCK_FOCUS`` lock bit of the ``V4L2_CID_3A_LOCK``
1738c2ecf20Sopenharmony_ci    control may stop updates of the ``V4L2_CID_AUTO_FOCUS_STATUS``
1748c2ecf20Sopenharmony_ci    control value.
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_ci.. tabularcolumns:: |p{6.7cm}|p{10.8cm}|
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ci.. flat-table::
1798c2ecf20Sopenharmony_ci    :header-rows:  0
1808c2ecf20Sopenharmony_ci    :stub-columns: 0
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci    * - ``V4L2_AUTO_FOCUS_STATUS_IDLE``
1838c2ecf20Sopenharmony_ci      - Automatic focus is not active.
1848c2ecf20Sopenharmony_ci    * - ``V4L2_AUTO_FOCUS_STATUS_BUSY``
1858c2ecf20Sopenharmony_ci      - Automatic focusing is in progress.
1868c2ecf20Sopenharmony_ci    * - ``V4L2_AUTO_FOCUS_STATUS_REACHED``
1878c2ecf20Sopenharmony_ci      - Focus has been reached.
1888c2ecf20Sopenharmony_ci    * - ``V4L2_AUTO_FOCUS_STATUS_FAILED``
1898c2ecf20Sopenharmony_ci      - Automatic focus has failed, the driver will not transition from
1908c2ecf20Sopenharmony_ci	this state until another action is performed by an application.
1918c2ecf20Sopenharmony_ci
1928c2ecf20Sopenharmony_ci
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_ci.. _v4l2-auto-focus-range:
1958c2ecf20Sopenharmony_ci
1968c2ecf20Sopenharmony_ci``V4L2_CID_AUTO_FOCUS_RANGE``
1978c2ecf20Sopenharmony_ci    (enum)
1988c2ecf20Sopenharmony_ci
1998c2ecf20Sopenharmony_cienum v4l2_auto_focus_range -
2008c2ecf20Sopenharmony_ci    Determines auto focus distance range for which lens may be adjusted.
2018c2ecf20Sopenharmony_ci
2028c2ecf20Sopenharmony_ci.. tabularcolumns:: |p{6.8cm}|p{10.7cm}|
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_ci.. flat-table::
2058c2ecf20Sopenharmony_ci    :header-rows:  0
2068c2ecf20Sopenharmony_ci    :stub-columns: 0
2078c2ecf20Sopenharmony_ci
2088c2ecf20Sopenharmony_ci    * - ``V4L2_AUTO_FOCUS_RANGE_AUTO``
2098c2ecf20Sopenharmony_ci      - The camera automatically selects the focus range.
2108c2ecf20Sopenharmony_ci    * - ``V4L2_AUTO_FOCUS_RANGE_NORMAL``
2118c2ecf20Sopenharmony_ci      - Normal distance range, limited for best automatic focus
2128c2ecf20Sopenharmony_ci	performance.
2138c2ecf20Sopenharmony_ci    * - ``V4L2_AUTO_FOCUS_RANGE_MACRO``
2148c2ecf20Sopenharmony_ci      - Macro (close-up) auto focus. The camera will use its minimum
2158c2ecf20Sopenharmony_ci	possible distance for auto focus.
2168c2ecf20Sopenharmony_ci    * - ``V4L2_AUTO_FOCUS_RANGE_INFINITY``
2178c2ecf20Sopenharmony_ci      - The lens is set to focus on an object at infinite distance.
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_ci
2208c2ecf20Sopenharmony_ci
2218c2ecf20Sopenharmony_ci``V4L2_CID_ZOOM_ABSOLUTE (integer)``
2228c2ecf20Sopenharmony_ci    Specify the objective lens focal length as an absolute value. The
2238c2ecf20Sopenharmony_ci    zoom unit is driver-specific and its value should be a positive
2248c2ecf20Sopenharmony_ci    integer.
2258c2ecf20Sopenharmony_ci
2268c2ecf20Sopenharmony_ci``V4L2_CID_ZOOM_RELATIVE (integer)``
2278c2ecf20Sopenharmony_ci    Specify the objective lens focal length relatively to the current
2288c2ecf20Sopenharmony_ci    value. Positive values move the zoom lens group towards the
2298c2ecf20Sopenharmony_ci    telephoto direction, negative values towards the wide-angle
2308c2ecf20Sopenharmony_ci    direction. The zoom unit is driver-specific. This is a write-only
2318c2ecf20Sopenharmony_ci    control.
2328c2ecf20Sopenharmony_ci
2338c2ecf20Sopenharmony_ci``V4L2_CID_ZOOM_CONTINUOUS (integer)``
2348c2ecf20Sopenharmony_ci    Move the objective lens group at the specified speed until it
2358c2ecf20Sopenharmony_ci    reaches physical device limits or until an explicit request to stop
2368c2ecf20Sopenharmony_ci    the movement. A positive value moves the zoom lens group towards the
2378c2ecf20Sopenharmony_ci    telephoto direction. A value of zero stops the zoom lens group
2388c2ecf20Sopenharmony_ci    movement. A negative value moves the zoom lens group towards the
2398c2ecf20Sopenharmony_ci    wide-angle direction. The zoom speed unit is driver-specific.
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ci``V4L2_CID_IRIS_ABSOLUTE (integer)``
2428c2ecf20Sopenharmony_ci    This control sets the camera's aperture to the specified value. The
2438c2ecf20Sopenharmony_ci    unit is undefined. Larger values open the iris wider, smaller values
2448c2ecf20Sopenharmony_ci    close it.
2458c2ecf20Sopenharmony_ci
2468c2ecf20Sopenharmony_ci``V4L2_CID_IRIS_RELATIVE (integer)``
2478c2ecf20Sopenharmony_ci    This control modifies the camera's aperture by the specified amount.
2488c2ecf20Sopenharmony_ci    The unit is undefined. Positive values open the iris one step
2498c2ecf20Sopenharmony_ci    further, negative values close it one step further. This is a
2508c2ecf20Sopenharmony_ci    write-only control.
2518c2ecf20Sopenharmony_ci
2528c2ecf20Sopenharmony_ci``V4L2_CID_PRIVACY (boolean)``
2538c2ecf20Sopenharmony_ci    Prevent video from being acquired by the camera. When this control
2548c2ecf20Sopenharmony_ci    is set to ``TRUE`` (1), no image can be captured by the camera.
2558c2ecf20Sopenharmony_ci    Common means to enforce privacy are mechanical obturation of the
2568c2ecf20Sopenharmony_ci    sensor and firmware image processing, but the device is not
2578c2ecf20Sopenharmony_ci    restricted to these methods. Devices that implement the privacy
2588c2ecf20Sopenharmony_ci    control must support read access and may support write access.
2598c2ecf20Sopenharmony_ci
2608c2ecf20Sopenharmony_ci``V4L2_CID_BAND_STOP_FILTER (integer)``
2618c2ecf20Sopenharmony_ci    Switch the band-stop filter of a camera sensor on or off, or specify
2628c2ecf20Sopenharmony_ci    its strength. Such band-stop filters can be used, for example, to
2638c2ecf20Sopenharmony_ci    filter out the fluorescent light component.
2648c2ecf20Sopenharmony_ci
2658c2ecf20Sopenharmony_ci.. _v4l2-auto-n-preset-white-balance:
2668c2ecf20Sopenharmony_ci
2678c2ecf20Sopenharmony_ci``V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE``
2688c2ecf20Sopenharmony_ci    (enum)
2698c2ecf20Sopenharmony_ci
2708c2ecf20Sopenharmony_cienum v4l2_auto_n_preset_white_balance -
2718c2ecf20Sopenharmony_ci    Sets white balance to automatic, manual or a preset. The presets
2728c2ecf20Sopenharmony_ci    determine color temperature of the light as a hint to the camera for
2738c2ecf20Sopenharmony_ci    white balance adjustments resulting in most accurate color
2748c2ecf20Sopenharmony_ci    representation. The following white balance presets are listed in
2758c2ecf20Sopenharmony_ci    order of increasing color temperature.
2768c2ecf20Sopenharmony_ci
2778c2ecf20Sopenharmony_ci.. tabularcolumns:: |p{7.2 cm}|p{10.3cm}|
2788c2ecf20Sopenharmony_ci
2798c2ecf20Sopenharmony_ci.. flat-table::
2808c2ecf20Sopenharmony_ci    :header-rows:  0
2818c2ecf20Sopenharmony_ci    :stub-columns: 0
2828c2ecf20Sopenharmony_ci
2838c2ecf20Sopenharmony_ci    * - ``V4L2_WHITE_BALANCE_MANUAL``
2848c2ecf20Sopenharmony_ci      - Manual white balance.
2858c2ecf20Sopenharmony_ci    * - ``V4L2_WHITE_BALANCE_AUTO``
2868c2ecf20Sopenharmony_ci      - Automatic white balance adjustments.
2878c2ecf20Sopenharmony_ci    * - ``V4L2_WHITE_BALANCE_INCANDESCENT``
2888c2ecf20Sopenharmony_ci      - White balance setting for incandescent (tungsten) lighting. It
2898c2ecf20Sopenharmony_ci	generally cools down the colors and corresponds approximately to
2908c2ecf20Sopenharmony_ci	2500...3500 K color temperature range.
2918c2ecf20Sopenharmony_ci    * - ``V4L2_WHITE_BALANCE_FLUORESCENT``
2928c2ecf20Sopenharmony_ci      - White balance preset for fluorescent lighting. It corresponds
2938c2ecf20Sopenharmony_ci	approximately to 4000...5000 K color temperature.
2948c2ecf20Sopenharmony_ci    * - ``V4L2_WHITE_BALANCE_FLUORESCENT_H``
2958c2ecf20Sopenharmony_ci      - With this setting the camera will compensate for fluorescent H
2968c2ecf20Sopenharmony_ci	lighting.
2978c2ecf20Sopenharmony_ci    * - ``V4L2_WHITE_BALANCE_HORIZON``
2988c2ecf20Sopenharmony_ci      - White balance setting for horizon daylight. It corresponds
2998c2ecf20Sopenharmony_ci	approximately to 5000 K color temperature.
3008c2ecf20Sopenharmony_ci    * - ``V4L2_WHITE_BALANCE_DAYLIGHT``
3018c2ecf20Sopenharmony_ci      - White balance preset for daylight (with clear sky). It corresponds
3028c2ecf20Sopenharmony_ci	approximately to 5000...6500 K color temperature.
3038c2ecf20Sopenharmony_ci    * - ``V4L2_WHITE_BALANCE_FLASH``
3048c2ecf20Sopenharmony_ci      - With this setting the camera will compensate for the flash light.
3058c2ecf20Sopenharmony_ci	It slightly warms up the colors and corresponds roughly to
3068c2ecf20Sopenharmony_ci	5000...5500 K color temperature.
3078c2ecf20Sopenharmony_ci    * - ``V4L2_WHITE_BALANCE_CLOUDY``
3088c2ecf20Sopenharmony_ci      - White balance preset for moderately overcast sky. This option
3098c2ecf20Sopenharmony_ci	corresponds approximately to 6500...8000 K color temperature
3108c2ecf20Sopenharmony_ci	range.
3118c2ecf20Sopenharmony_ci    * - ``V4L2_WHITE_BALANCE_SHADE``
3128c2ecf20Sopenharmony_ci      - White balance preset for shade or heavily overcast sky. It
3138c2ecf20Sopenharmony_ci	corresponds approximately to 9000...10000 K color temperature.
3148c2ecf20Sopenharmony_ci
3158c2ecf20Sopenharmony_ci
3168c2ecf20Sopenharmony_ci
3178c2ecf20Sopenharmony_ci.. _v4l2-wide-dynamic-range:
3188c2ecf20Sopenharmony_ci
3198c2ecf20Sopenharmony_ci``V4L2_CID_WIDE_DYNAMIC_RANGE (boolean)``
3208c2ecf20Sopenharmony_ci    Enables or disables the camera's wide dynamic range feature. This
3218c2ecf20Sopenharmony_ci    feature allows to obtain clear images in situations where intensity
3228c2ecf20Sopenharmony_ci    of the illumination varies significantly throughout the scene, i.e.
3238c2ecf20Sopenharmony_ci    there are simultaneously very dark and very bright areas. It is most
3248c2ecf20Sopenharmony_ci    commonly realized in cameras by combining two subsequent frames with
3258c2ecf20Sopenharmony_ci    different exposure times.  [#f1]_
3268c2ecf20Sopenharmony_ci
3278c2ecf20Sopenharmony_ci.. _v4l2-image-stabilization:
3288c2ecf20Sopenharmony_ci
3298c2ecf20Sopenharmony_ci``V4L2_CID_IMAGE_STABILIZATION (boolean)``
3308c2ecf20Sopenharmony_ci    Enables or disables image stabilization.
3318c2ecf20Sopenharmony_ci
3328c2ecf20Sopenharmony_ci``V4L2_CID_ISO_SENSITIVITY (integer menu)``
3338c2ecf20Sopenharmony_ci    Determines ISO equivalent of an image sensor indicating the sensor's
3348c2ecf20Sopenharmony_ci    sensitivity to light. The numbers are expressed in arithmetic scale,
3358c2ecf20Sopenharmony_ci    as per :ref:`iso12232` standard, where doubling the sensor
3368c2ecf20Sopenharmony_ci    sensitivity is represented by doubling the numerical ISO value.
3378c2ecf20Sopenharmony_ci    Applications should interpret the values as standard ISO values
3388c2ecf20Sopenharmony_ci    multiplied by 1000, e.g. control value 800 stands for ISO 0.8.
3398c2ecf20Sopenharmony_ci    Drivers will usually support only a subset of standard ISO values.
3408c2ecf20Sopenharmony_ci    The effect of setting this control while the
3418c2ecf20Sopenharmony_ci    ``V4L2_CID_ISO_SENSITIVITY_AUTO`` control is set to a value other
3428c2ecf20Sopenharmony_ci    than ``V4L2_CID_ISO_SENSITIVITY_MANUAL`` is undefined, drivers
3438c2ecf20Sopenharmony_ci    should ignore such requests.
3448c2ecf20Sopenharmony_ci
3458c2ecf20Sopenharmony_ci.. _v4l2-iso-sensitivity-auto-type:
3468c2ecf20Sopenharmony_ci
3478c2ecf20Sopenharmony_ci``V4L2_CID_ISO_SENSITIVITY_AUTO``
3488c2ecf20Sopenharmony_ci    (enum)
3498c2ecf20Sopenharmony_ci
3508c2ecf20Sopenharmony_cienum v4l2_iso_sensitivity_type -
3518c2ecf20Sopenharmony_ci    Enables or disables automatic ISO sensitivity adjustments.
3528c2ecf20Sopenharmony_ci
3538c2ecf20Sopenharmony_ci
3548c2ecf20Sopenharmony_ci
3558c2ecf20Sopenharmony_ci.. flat-table::
3568c2ecf20Sopenharmony_ci    :header-rows:  0
3578c2ecf20Sopenharmony_ci    :stub-columns: 0
3588c2ecf20Sopenharmony_ci
3598c2ecf20Sopenharmony_ci    * - ``V4L2_CID_ISO_SENSITIVITY_MANUAL``
3608c2ecf20Sopenharmony_ci      - Manual ISO sensitivity.
3618c2ecf20Sopenharmony_ci    * - ``V4L2_CID_ISO_SENSITIVITY_AUTO``
3628c2ecf20Sopenharmony_ci      - Automatic ISO sensitivity adjustments.
3638c2ecf20Sopenharmony_ci
3648c2ecf20Sopenharmony_ci
3658c2ecf20Sopenharmony_ci
3668c2ecf20Sopenharmony_ci.. _v4l2-scene-mode:
3678c2ecf20Sopenharmony_ci
3688c2ecf20Sopenharmony_ci``V4L2_CID_SCENE_MODE``
3698c2ecf20Sopenharmony_ci    (enum)
3708c2ecf20Sopenharmony_ci
3718c2ecf20Sopenharmony_cienum v4l2_scene_mode -
3728c2ecf20Sopenharmony_ci    This control allows to select scene programs as the camera automatic
3738c2ecf20Sopenharmony_ci    modes optimized for common shooting scenes. Within these modes the
3748c2ecf20Sopenharmony_ci    camera determines best exposure, aperture, focusing, light metering,
3758c2ecf20Sopenharmony_ci    white balance and equivalent sensitivity. The controls of those
3768c2ecf20Sopenharmony_ci    parameters are influenced by the scene mode control. An exact
3778c2ecf20Sopenharmony_ci    behavior in each mode is subject to the camera specification.
3788c2ecf20Sopenharmony_ci
3798c2ecf20Sopenharmony_ci    When the scene mode feature is not used, this control should be set
3808c2ecf20Sopenharmony_ci    to ``V4L2_SCENE_MODE_NONE`` to make sure the other possibly related
3818c2ecf20Sopenharmony_ci    controls are accessible. The following scene programs are defined:
3828c2ecf20Sopenharmony_ci
3838c2ecf20Sopenharmony_ci.. raw:: latex
3848c2ecf20Sopenharmony_ci
3858c2ecf20Sopenharmony_ci    \small
3868c2ecf20Sopenharmony_ci
3878c2ecf20Sopenharmony_ci.. tabularcolumns:: |p{5.9cm}|p{11.5cm}|
3888c2ecf20Sopenharmony_ci
3898c2ecf20Sopenharmony_ci.. flat-table::
3908c2ecf20Sopenharmony_ci    :header-rows:  0
3918c2ecf20Sopenharmony_ci    :stub-columns: 0
3928c2ecf20Sopenharmony_ci
3938c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_NONE``
3948c2ecf20Sopenharmony_ci      - The scene mode feature is disabled.
3958c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_BACKLIGHT``
3968c2ecf20Sopenharmony_ci      - Backlight. Compensates for dark shadows when light is coming from
3978c2ecf20Sopenharmony_ci	behind a subject, also by automatically turning on the flash.
3988c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_BEACH_SNOW``
3998c2ecf20Sopenharmony_ci      - Beach and snow. This mode compensates for all-white or bright
4008c2ecf20Sopenharmony_ci	scenes, which tend to look gray and low contrast, when camera's
4018c2ecf20Sopenharmony_ci	automatic exposure is based on an average scene brightness. To
4028c2ecf20Sopenharmony_ci	compensate, this mode automatically slightly overexposes the
4038c2ecf20Sopenharmony_ci	frames. The white balance may also be adjusted to compensate for
4048c2ecf20Sopenharmony_ci	the fact that reflected snow looks bluish rather than white.
4058c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_CANDLELIGHT``
4068c2ecf20Sopenharmony_ci      - Candle light. The camera generally raises the ISO sensitivity and
4078c2ecf20Sopenharmony_ci	lowers the shutter speed. This mode compensates for relatively
4088c2ecf20Sopenharmony_ci	close subject in the scene. The flash is disabled in order to
4098c2ecf20Sopenharmony_ci	preserve the ambiance of the light.
4108c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_DAWN_DUSK``
4118c2ecf20Sopenharmony_ci      - Dawn and dusk. Preserves the colors seen in low natural light
4128c2ecf20Sopenharmony_ci	before dusk and after down. The camera may turn off the flash, and
4138c2ecf20Sopenharmony_ci	automatically focus at infinity. It will usually boost saturation
4148c2ecf20Sopenharmony_ci	and lower the shutter speed.
4158c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_FALL_COLORS``
4168c2ecf20Sopenharmony_ci      - Fall colors. Increases saturation and adjusts white balance for
4178c2ecf20Sopenharmony_ci	color enhancement. Pictures of autumn leaves get saturated reds
4188c2ecf20Sopenharmony_ci	and yellows.
4198c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_FIREWORKS``
4208c2ecf20Sopenharmony_ci      - Fireworks. Long exposure times are used to capture the expanding
4218c2ecf20Sopenharmony_ci	burst of light from a firework. The camera may invoke image
4228c2ecf20Sopenharmony_ci	stabilization.
4238c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_LANDSCAPE``
4248c2ecf20Sopenharmony_ci      - Landscape. The camera may choose a small aperture to provide deep
4258c2ecf20Sopenharmony_ci	depth of field and long exposure duration to help capture detail
4268c2ecf20Sopenharmony_ci	in dim light conditions. The focus is fixed at infinity. Suitable
4278c2ecf20Sopenharmony_ci	for distant and wide scenery.
4288c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_NIGHT``
4298c2ecf20Sopenharmony_ci      - Night, also known as Night Landscape. Designed for low light
4308c2ecf20Sopenharmony_ci	conditions, it preserves detail in the dark areas without blowing
4318c2ecf20Sopenharmony_ci	out bright objects. The camera generally sets itself to a
4328c2ecf20Sopenharmony_ci	medium-to-high ISO sensitivity, with a relatively long exposure
4338c2ecf20Sopenharmony_ci	time, and turns flash off. As such, there will be increased image
4348c2ecf20Sopenharmony_ci	noise and the possibility of blurred image.
4358c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_PARTY_INDOOR``
4368c2ecf20Sopenharmony_ci      - Party and indoor. Designed to capture indoor scenes that are lit
4378c2ecf20Sopenharmony_ci	by indoor background lighting as well as the flash. The camera
4388c2ecf20Sopenharmony_ci	usually increases ISO sensitivity, and adjusts exposure for the
4398c2ecf20Sopenharmony_ci	low light conditions.
4408c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_PORTRAIT``
4418c2ecf20Sopenharmony_ci      - Portrait. The camera adjusts the aperture so that the depth of
4428c2ecf20Sopenharmony_ci	field is reduced, which helps to isolate the subject against a
4438c2ecf20Sopenharmony_ci	smooth background. Most cameras recognize the presence of faces in
4448c2ecf20Sopenharmony_ci	the scene and focus on them. The color hue is adjusted to enhance
4458c2ecf20Sopenharmony_ci	skin tones. The intensity of the flash is often reduced.
4468c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_SPORTS``
4478c2ecf20Sopenharmony_ci      - Sports. Significantly increases ISO and uses a fast shutter speed
4488c2ecf20Sopenharmony_ci	to freeze motion of rapidly-moving subjects. Increased image noise
4498c2ecf20Sopenharmony_ci	may be seen in this mode.
4508c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_SUNSET``
4518c2ecf20Sopenharmony_ci      - Sunset. Preserves deep hues seen in sunsets and sunrises. It bumps
4528c2ecf20Sopenharmony_ci	up the saturation.
4538c2ecf20Sopenharmony_ci    * - ``V4L2_SCENE_MODE_TEXT``
4548c2ecf20Sopenharmony_ci      - Text. It applies extra contrast and sharpness, it is typically a
4558c2ecf20Sopenharmony_ci	black-and-white mode optimized for readability. Automatic focus
4568c2ecf20Sopenharmony_ci	may be switched to close-up mode and this setting may also involve
4578c2ecf20Sopenharmony_ci	some lens-distortion correction.
4588c2ecf20Sopenharmony_ci
4598c2ecf20Sopenharmony_ci.. raw:: latex
4608c2ecf20Sopenharmony_ci
4618c2ecf20Sopenharmony_ci    \normalsize
4628c2ecf20Sopenharmony_ci
4638c2ecf20Sopenharmony_ci
4648c2ecf20Sopenharmony_ci``V4L2_CID_3A_LOCK (bitmask)``
4658c2ecf20Sopenharmony_ci    This control locks or unlocks the automatic focus, exposure and
4668c2ecf20Sopenharmony_ci    white balance. The automatic adjustments can be paused independently
4678c2ecf20Sopenharmony_ci    by setting the corresponding lock bit to 1. The camera then retains
4688c2ecf20Sopenharmony_ci    the settings until the lock bit is cleared. The following lock bits
4698c2ecf20Sopenharmony_ci    are defined:
4708c2ecf20Sopenharmony_ci
4718c2ecf20Sopenharmony_ci    When a given algorithm is not enabled, drivers should ignore
4728c2ecf20Sopenharmony_ci    requests to lock it and should return no error. An example might be
4738c2ecf20Sopenharmony_ci    an application setting bit ``V4L2_LOCK_WHITE_BALANCE`` when the
4748c2ecf20Sopenharmony_ci    ``V4L2_CID_AUTO_WHITE_BALANCE`` control is set to ``FALSE``. The
4758c2ecf20Sopenharmony_ci    value of this control may be changed by exposure, white balance or
4768c2ecf20Sopenharmony_ci    focus controls.
4778c2ecf20Sopenharmony_ci
4788c2ecf20Sopenharmony_ci
4798c2ecf20Sopenharmony_ci
4808c2ecf20Sopenharmony_ci.. flat-table::
4818c2ecf20Sopenharmony_ci    :header-rows:  0
4828c2ecf20Sopenharmony_ci    :stub-columns: 0
4838c2ecf20Sopenharmony_ci
4848c2ecf20Sopenharmony_ci    * - ``V4L2_LOCK_EXPOSURE``
4858c2ecf20Sopenharmony_ci      - Automatic exposure adjustments lock.
4868c2ecf20Sopenharmony_ci    * - ``V4L2_LOCK_WHITE_BALANCE``
4878c2ecf20Sopenharmony_ci      - Automatic white balance adjustments lock.
4888c2ecf20Sopenharmony_ci    * - ``V4L2_LOCK_FOCUS``
4898c2ecf20Sopenharmony_ci      - Automatic focus lock.
4908c2ecf20Sopenharmony_ci
4918c2ecf20Sopenharmony_ci
4928c2ecf20Sopenharmony_ci
4938c2ecf20Sopenharmony_ci``V4L2_CID_PAN_SPEED (integer)``
4948c2ecf20Sopenharmony_ci    This control turns the camera horizontally at the specific speed.
4958c2ecf20Sopenharmony_ci    The unit is undefined. A positive value moves the camera to the
4968c2ecf20Sopenharmony_ci    right (clockwise when viewed from above), a negative value to the
4978c2ecf20Sopenharmony_ci    left. A value of zero stops the motion if one is in progress and has
4988c2ecf20Sopenharmony_ci    no effect otherwise.
4998c2ecf20Sopenharmony_ci
5008c2ecf20Sopenharmony_ci``V4L2_CID_TILT_SPEED (integer)``
5018c2ecf20Sopenharmony_ci    This control turns the camera vertically at the specified speed. The
5028c2ecf20Sopenharmony_ci    unit is undefined. A positive value moves the camera up, a negative
5038c2ecf20Sopenharmony_ci    value down. A value of zero stops the motion if one is in progress
5048c2ecf20Sopenharmony_ci    and has no effect otherwise.
5058c2ecf20Sopenharmony_ci
5068c2ecf20Sopenharmony_ci``V4L2_CID_CAMERA_ORIENTATION (menu)``
5078c2ecf20Sopenharmony_ci    This read-only control describes the camera orientation by reporting its
5088c2ecf20Sopenharmony_ci    mounting position on the device where the camera is installed. The control
5098c2ecf20Sopenharmony_ci    value is constant and not modifiable by software. This control is
5108c2ecf20Sopenharmony_ci    particularly meaningful for devices which have a well defined orientation,
5118c2ecf20Sopenharmony_ci    such as phones, laptops and portable devices since the control is expressed
5128c2ecf20Sopenharmony_ci    as a position relative to the device's intended usage orientation. For
5138c2ecf20Sopenharmony_ci    example, a camera installed on the user-facing side of a phone, a tablet or
5148c2ecf20Sopenharmony_ci    a laptop device is said to be have ``V4L2_CAMERA_ORIENTATION_FRONT``
5158c2ecf20Sopenharmony_ci    orientation, while a camera installed on the opposite side of the front one
5168c2ecf20Sopenharmony_ci    is said to be have ``V4L2_CAMERA_ORIENTATION_BACK`` orientation. Camera
5178c2ecf20Sopenharmony_ci    sensors not directly attached to the device, or attached in a way that
5188c2ecf20Sopenharmony_ci    allows them to move freely, such as webcams and digital cameras, are said to
5198c2ecf20Sopenharmony_ci    have the ``V4L2_CAMERA_ORIENTATION_EXTERNAL`` orientation.
5208c2ecf20Sopenharmony_ci
5218c2ecf20Sopenharmony_ci
5228c2ecf20Sopenharmony_ci
5238c2ecf20Sopenharmony_ci.. flat-table::
5248c2ecf20Sopenharmony_ci    :header-rows:  0
5258c2ecf20Sopenharmony_ci    :stub-columns: 0
5268c2ecf20Sopenharmony_ci
5278c2ecf20Sopenharmony_ci    * - ``V4L2_CAMERA_ORIENTATION_FRONT``
5288c2ecf20Sopenharmony_ci      - The camera is oriented towards the user facing side of the device.
5298c2ecf20Sopenharmony_ci    * - ``V4L2_CAMERA_ORIENTATION_BACK``
5308c2ecf20Sopenharmony_ci      - The camera is oriented towards the back facing side of the device.
5318c2ecf20Sopenharmony_ci    * - ``V4L2_CAMERA_ORIENTATION_EXTERNAL``
5328c2ecf20Sopenharmony_ci      - The camera is not directly attached to the device and is freely movable.
5338c2ecf20Sopenharmony_ci
5348c2ecf20Sopenharmony_ci
5358c2ecf20Sopenharmony_ci
5368c2ecf20Sopenharmony_ci``V4L2_CID_CAMERA_SENSOR_ROTATION (integer)``
5378c2ecf20Sopenharmony_ci    This read-only control describes the rotation correction in degrees in the
5388c2ecf20Sopenharmony_ci    counter-clockwise direction to be applied to the captured images once
5398c2ecf20Sopenharmony_ci    captured to memory to compensate for the camera sensor mounting rotation.
5408c2ecf20Sopenharmony_ci
5418c2ecf20Sopenharmony_ci    For a precise definition of the sensor mounting rotation refer to the
5428c2ecf20Sopenharmony_ci    extensive description of the 'rotation' properties in the device tree
5438c2ecf20Sopenharmony_ci    bindings file 'video-interfaces.txt'.
5448c2ecf20Sopenharmony_ci
5458c2ecf20Sopenharmony_ci    A few examples are below reported, using a shark swimming from left to
5468c2ecf20Sopenharmony_ci    right in front of the user as the example scene to capture. ::
5478c2ecf20Sopenharmony_ci
5488c2ecf20Sopenharmony_ci                 0               X-axis
5498c2ecf20Sopenharmony_ci               0 +------------------------------------->
5508c2ecf20Sopenharmony_ci                 !
5518c2ecf20Sopenharmony_ci                 !
5528c2ecf20Sopenharmony_ci                 !
5538c2ecf20Sopenharmony_ci                 !           |\____)\___
5548c2ecf20Sopenharmony_ci                 !           ) _____  __`<
5558c2ecf20Sopenharmony_ci                 !           |/     )/
5568c2ecf20Sopenharmony_ci                 !
5578c2ecf20Sopenharmony_ci                 !
5588c2ecf20Sopenharmony_ci                 !
5598c2ecf20Sopenharmony_ci                 V
5608c2ecf20Sopenharmony_ci               Y-axis
5618c2ecf20Sopenharmony_ci
5628c2ecf20Sopenharmony_ci    Example one - Webcam
5638c2ecf20Sopenharmony_ci
5648c2ecf20Sopenharmony_ci    Assuming you can bring your laptop with you while swimming with sharks,
5658c2ecf20Sopenharmony_ci    the camera module of the laptop is installed on the user facing part of a
5668c2ecf20Sopenharmony_ci    laptop screen casing, and is typically used for video calls. The captured
5678c2ecf20Sopenharmony_ci    images are meant to be displayed in landscape mode (width > height) on the
5688c2ecf20Sopenharmony_ci    laptop screen.
5698c2ecf20Sopenharmony_ci
5708c2ecf20Sopenharmony_ci    The camera is typically mounted upside-down to compensate the lens optical
5718c2ecf20Sopenharmony_ci    inversion effect. In this case the value of the
5728c2ecf20Sopenharmony_ci    V4L2_CID_CAMERA_SENSOR_ROTATION control is 0, no rotation is required to
5738c2ecf20Sopenharmony_ci    display images correctly to the user.
5748c2ecf20Sopenharmony_ci
5758c2ecf20Sopenharmony_ci    If the camera sensor is not mounted upside-down it is required to compensate
5768c2ecf20Sopenharmony_ci    the lens optical inversion effect and the value of the
5778c2ecf20Sopenharmony_ci    V4L2_CID_CAMERA_SENSOR_ROTATION control is 180 degrees, as images will
5788c2ecf20Sopenharmony_ci    result rotated when captured to memory. ::
5798c2ecf20Sopenharmony_ci
5808c2ecf20Sopenharmony_ci                 +--------------------------------------+
5818c2ecf20Sopenharmony_ci                 !                                      !
5828c2ecf20Sopenharmony_ci                 !                                      !
5838c2ecf20Sopenharmony_ci                 !                                      !
5848c2ecf20Sopenharmony_ci                 !              __/(_____/|             !
5858c2ecf20Sopenharmony_ci                 !            >.___  ____ (             !
5868c2ecf20Sopenharmony_ci                 !                 \(    \|             !
5878c2ecf20Sopenharmony_ci                 !                                      !
5888c2ecf20Sopenharmony_ci                 !                                      !
5898c2ecf20Sopenharmony_ci                 !                                      !
5908c2ecf20Sopenharmony_ci                 +--------------------------------------+
5918c2ecf20Sopenharmony_ci
5928c2ecf20Sopenharmony_ci    A software rotation correction of 180 degrees has to be applied to correctly
5938c2ecf20Sopenharmony_ci    display the image on the user screen. ::
5948c2ecf20Sopenharmony_ci
5958c2ecf20Sopenharmony_ci                 +--------------------------------------+
5968c2ecf20Sopenharmony_ci                 !                                      !
5978c2ecf20Sopenharmony_ci                 !                                      !
5988c2ecf20Sopenharmony_ci                 !                                      !
5998c2ecf20Sopenharmony_ci                 !             |\____)\___              !
6008c2ecf20Sopenharmony_ci                 !             ) _____  __`<            !
6018c2ecf20Sopenharmony_ci                 !             |/     )/                !
6028c2ecf20Sopenharmony_ci                 !                                      !
6038c2ecf20Sopenharmony_ci                 !                                      !
6048c2ecf20Sopenharmony_ci                 !                                      !
6058c2ecf20Sopenharmony_ci                 +--------------------------------------+
6068c2ecf20Sopenharmony_ci
6078c2ecf20Sopenharmony_ci    Example two - Phone camera
6088c2ecf20Sopenharmony_ci
6098c2ecf20Sopenharmony_ci    It is more handy to go and swim with sharks with only your mobile phone
6108c2ecf20Sopenharmony_ci    with you and take pictures with the camera that is installed on the back
6118c2ecf20Sopenharmony_ci    side of the device, facing away from the user. The captured images are meant
6128c2ecf20Sopenharmony_ci    to be displayed in portrait mode (height > width) to match the device screen
6138c2ecf20Sopenharmony_ci    orientation and the device usage orientation used when taking the picture.
6148c2ecf20Sopenharmony_ci
6158c2ecf20Sopenharmony_ci    The camera sensor is typically mounted with its pixel array longer side
6168c2ecf20Sopenharmony_ci    aligned to the device longer side, upside-down mounted to compensate for
6178c2ecf20Sopenharmony_ci    the lens optical inversion effect.
6188c2ecf20Sopenharmony_ci
6198c2ecf20Sopenharmony_ci    The images once captured to memory will be rotated and the value of the
6208c2ecf20Sopenharmony_ci    V4L2_CID_CAMERA_SENSOR_ROTATION will report a 90 degree rotation. ::
6218c2ecf20Sopenharmony_ci
6228c2ecf20Sopenharmony_ci
6238c2ecf20Sopenharmony_ci                 +-------------------------------------+
6248c2ecf20Sopenharmony_ci                 |                 _ _                 |
6258c2ecf20Sopenharmony_ci                 |                \   /                |
6268c2ecf20Sopenharmony_ci                 |                 | |                 |
6278c2ecf20Sopenharmony_ci                 |                 | |                 |
6288c2ecf20Sopenharmony_ci                 |                 |  >                |
6298c2ecf20Sopenharmony_ci                 |                <  |                 |
6308c2ecf20Sopenharmony_ci                 |                 | |                 |
6318c2ecf20Sopenharmony_ci                 |                   .                 |
6328c2ecf20Sopenharmony_ci                 |                  V                  |
6338c2ecf20Sopenharmony_ci                 +-------------------------------------+
6348c2ecf20Sopenharmony_ci
6358c2ecf20Sopenharmony_ci    A correction of 90 degrees in counter-clockwise direction has to be
6368c2ecf20Sopenharmony_ci    applied to correctly display the image in portrait mode on the device
6378c2ecf20Sopenharmony_ci    screen. ::
6388c2ecf20Sopenharmony_ci
6398c2ecf20Sopenharmony_ci                          +--------------------+
6408c2ecf20Sopenharmony_ci                          |                    |
6418c2ecf20Sopenharmony_ci                          |                    |
6428c2ecf20Sopenharmony_ci                          |                    |
6438c2ecf20Sopenharmony_ci                          |                    |
6448c2ecf20Sopenharmony_ci                          |                    |
6458c2ecf20Sopenharmony_ci                          |                    |
6468c2ecf20Sopenharmony_ci                          |   |\____)\___      |
6478c2ecf20Sopenharmony_ci                          |   ) _____  __`<    |
6488c2ecf20Sopenharmony_ci                          |   |/     )/        |
6498c2ecf20Sopenharmony_ci                          |                    |
6508c2ecf20Sopenharmony_ci                          |                    |
6518c2ecf20Sopenharmony_ci                          |                    |
6528c2ecf20Sopenharmony_ci                          |                    |
6538c2ecf20Sopenharmony_ci                          |                    |
6548c2ecf20Sopenharmony_ci                          +--------------------+
6558c2ecf20Sopenharmony_ci
6568c2ecf20Sopenharmony_ci
6578c2ecf20Sopenharmony_ci.. [#f1]
6588c2ecf20Sopenharmony_ci   This control may be changed to a menu control in the future, if more
6598c2ecf20Sopenharmony_ci   options are required.
660