sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget3/translations/zh_CN/userspace-api/media/v4l/controlmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/zh_TW/userspace-api/media/v4l/controlmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/it_IT/userspace-api/media/v4l/controlmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ja_JP/userspace-api/media/v4l/controlmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ko_KR/userspace-api/media/v4l/controlmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/sp_SP/userspace-api/media/v4l/controlmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-laterh]h8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhM/var/lib/git/docbuild/linux/Documentation/userspace-api/media/v4l/control.rsthKubhtarget)}(h .. _control:h]h}(h]h ]h"]h$]h&]refidcontroluh1hhKhhhhhhubhsection)}(hhh](htitle)}(h User Controlsh]h User Controls}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hXDevices typically have a number of user-settable controls such as brightness, saturation and so on, which would be presented to the user on a graphical user interface. But, different devices will have different controls available, and furthermore, the range of possible values, and the default value will vary from device to device. The control ioctls provide the information and a mechanism to create a nice user interface for these controls that will work correctly with any device.h]hXDevices typically have a number of user-settable controls such as brightness, saturation and so on, which would be presented to the user on a graphical user interface. But, different devices will have different controls available, and furthermore, the range of possible values, and the default value will vary from device to device. The control ioctls provide the information and a mechanism to create a nice user interface for these controls that will work correctly with any device.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hXAll controls are accessed using an ID value. V4L2 defines several IDs for specific purposes. Drivers can also implement their own custom controls using ``V4L2_CID_PRIVATE_BASE`` [#f1]_ and higher values. The pre-defined control IDs have the prefix ``V4L2_CID_``, and are listed in :ref:`control-id`. The ID is used when querying the attributes of a control, and when getting or setting the current value.h](hAll controls are accessed using an ID value. V4L2 defines several IDs for specific purposes. Drivers can also implement their own custom controls using }(hhhhhNhNubhliteral)}(h``V4L2_CID_PRIVATE_BASE``h]hV4L2_CID_PRIVATE_BASE}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh }(hhhhhNhNubhfootnote_reference)}(h[#f1]_h]h1}(hjhhhNhNubah}(h]id1ah ]h"]h$]h&]autoKhf1docnameuserspace-api/media/v4l/controluh1jhhresolvedKubh@ and higher values. The pre-defined control IDs have the prefix }(hhhhhNhNubh)}(h ``V4L2_CID_``h]h V4L2_CID_}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh, and are listed in }(hhhhhNhNubh)}(h:ref:`control-id`h]hinline)}(hj1h]h control-id}(hj5hhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1j3hj/ubah}(h]h ]h"]h$]h&]refdocj refdomainj@reftyperef refexplicitrefwarn reftarget control-iduh1hhhhKhhubhj. The ID is used when querying the attributes of a control, and when getting or setting the current value.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hXGenerally applications should present controls to the user without assumptions about their purpose. Each control comes with a name string the user is supposed to understand. When the purpose is non-intuitive the driver writer should provide a user manual, a user interface plug-in or a driver specific panel application. Predefined IDs were introduced to change a few controls programmatically, for example to mute a device during a channel switch.h]hXGenerally applications should present controls to the user without assumptions about their purpose. Each control comes with a name string the user is supposed to understand. When the purpose is non-intuitive the driver writer should provide a user manual, a user interface plug-in or a driver specific panel application. Predefined IDs were introduced to change a few controls programmatically, for example to mute a device during a channel switch.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hX7Drivers may enumerate different controls after switching the current video input or output, tuner or modulator, or audio input or output. Different in the sense of other bounds, another default and current value, step size or other menu items. A control with a certain *custom* ID can also change name and type.h](hX Drivers may enumerate different controls after switching the current video input or output, tuner or modulator, or audio input or output. Different in the sense of other bounds, another default and current value, step size or other menu items. A control with a certain }(hjkhhhNhNubhemphasis)}(h*custom*h]hcustom}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jshjkubh" ID can also change name and type.}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK!hhhhubh)}(hIf a control is not applicable to the current configuration of the device (for example, it doesn't apply to the current video input) drivers set the ``V4L2_CTRL_FLAG_INACTIVE`` flag.h](hIf a control is not applicable to the current configuration of the device (for example, it doesn’t apply to the current video input) drivers set the }(hjhhhNhNubh)}(h``V4L2_CTRL_FLAG_INACTIVE``h]hV4L2_CTRL_FLAG_INACTIVE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh flag.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK'hhhhubh)}(hX Control values are stored globally, they do not change when switching except to stay within the reported bounds. They also do not change e. g. when the device is opened or closed, when the tuner radio frequency is changed or generally never without application request.h]hX Control values are stored globally, they do not change when switching except to stay within the reported bounds. They also do not change e. g. when the device is opened or closed, when the tuner radio frequency is changed or generally never without application request.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hhhhubh)}(hV4L2 specifies an event mechanism to notify applications when controls change value (see :ref:`VIDIOC_SUBSCRIBE_EVENT`, event ``V4L2_EVENT_CTRL``), panel applications might want to make use of that in order to always reflect the correct control value.h](hYV4L2 specifies an event mechanism to notify applications when controls change value (see }(hjhhhNhNubh)}(h:ref:`VIDIOC_SUBSCRIBE_EVENT`h]j4)}(hjh]hVIDIOC_SUBSCRIBE_EVENT}(hjhhhNhNubah}(h]h ](j?stdstd-refeh"]h$]h&]uh1j3hjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjQvidioc_subscribe_eventuh1hhhhK0hjubh, event }(hjhhhNhNubh)}(h``V4L2_EVENT_CTRL``h]hV4L2_EVENT_CTRL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhj), panel applications might want to make use of that in order to always reflect the correct control value.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK0hhhhubh)}(h$All controls use machine endianness.h]h$All controls use machine endianness.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hhhhubh)}(h.. _control-id:h]h}(h]h ]h"]h$]h&]h control-iduh1hhK9hhhhhhubh)}(hhh](h)}(h Control IDsh]h Control IDs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK`__. h](j5)}(h4``V4L2_CID_WHITE_BALANCE_TEMPERATURE`` ``(integer)``h](h)}(h&``V4L2_CID_WHITE_BALANCE_TEMPERATURE``h]h"V4L2_CID_WHITE_BALANCE_TEMPERATURE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh }(hj hhhNhNubh)}(h ``(integer)``h]h (integer)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1j4hhhKhj ubjN)}(hhh]h)}(hXThis control specifies the white balance settings as a color temperature in Kelvin. A driver should have a minimum of 2800 (incandescent) to 6500 (daylight). For more information about color temperature see `Wikipedia `__.h](hThis control specifies the white balance settings as a color temperature in Kelvin. A driver should have a minimum of 2800 (incandescent) to 6500 (daylight). For more information about color temperature see }(hj hhhNhNubh reference)}(h>`Wikipedia `__h]h Wikipedia}(hj) hhhNhNubah}(h]h ]h"]h$]h&]name Wikipediarefuri.http://en.wikipedia.org/wiki/Color_temperatureuh1j' hj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jMhj ubeh}(h]h ]h"]h$]h&]uh1j.hhhKhj hhubj/)}(h``V4L2_CID_SHARPNESS`` ``(integer)`` Adjusts the sharpness filters in a camera. The minimum value disables the filters, higher values give a sharper picture. h](j5)}(h$``V4L2_CID_SHARPNESS`` ``(integer)``h](h)}(h``V4L2_CID_SHARPNESS``h]hV4L2_CID_SHARPNESS}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjU ubh }(hjU hhhNhNubh)}(h ``(integer)``h]h (integer)}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjU ubeh}(h]h ]h"]h$]h&]uh1j4hhhKhjQ ubjN)}(hhh]h)}(hxAdjusts the sharpness filters in a camera. The minimum value disables the filters, higher values give a sharper picture.h]hxAdjusts the sharpness filters in a camera. The minimum value disables the filters, higher values give a sharper picture.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jMhjQ ubeh}(h]h ]h"]h$]h&]uh1j.hhhKhj hhubj/)}(h``V4L2_CID_BACKLIGHT_COMPENSATION`` ``(integer)`` Adjusts the backlight compensation in a camera. The minimum value disables backlight compensation. h](j5)}(h1``V4L2_CID_BACKLIGHT_COMPENSATION`` ``(integer)``h](h)}(h#``V4L2_CID_BACKLIGHT_COMPENSATION``h]hV4L2_CID_BACKLIGHT_COMPENSATION}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh }(hj hhhNhNubh)}(h ``(integer)``h]h (integer)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1j4hhhKhj ubjN)}(hhh]h)}(hbAdjusts the backlight compensation in a camera. The minimum value disables backlight compensation.h]hbAdjusts the backlight compensation in a camera. The minimum value disables backlight compensation.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jMhj ubeh}(h]h ]h"]h$]h&]uh1j.hhhKhj hhubj/)}(hE``V4L2_CID_CHROMA_AGC`` ``(boolean)`` Chroma automatic gain control. h](j5)}(h%``V4L2_CID_CHROMA_AGC`` ``(boolean)``h](h)}(h``V4L2_CID_CHROMA_AGC``h]hV4L2_CID_CHROMA_AGC}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh }(hj hhhNhNubh)}(h ``(boolean)``h]h (boolean)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1j4hhhKhj ubjN)}(hhh]h)}(hChroma automatic gain control.h]hChroma automatic gain control.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jMhj ubeh}(h]h ]h"]h$]h&]uh1j.hhhKhj hhubj/)}(hn``V4L2_CID_CHROMA_GAIN`` ``(integer)`` Adjusts the Chroma gain control (for use when chroma AGC is disabled). h](j5)}(h&``V4L2_CID_CHROMA_GAIN`` ``(integer)``h](h)}(h``V4L2_CID_CHROMA_GAIN``h]hV4L2_CID_CHROMA_GAIN}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6 ubh }(hj6 hhhNhNubh)}(h ``(integer)``h]h (integer)}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6 ubeh}(h]h ]h"]h$]h&]uh1j4hhhKhj2 ubjN)}(hhh]h)}(hFAdjusts the Chroma gain control (for use when chroma AGC is disabled).h]hFAdjusts the Chroma gain control (for use when chroma AGC is disabled).}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj` ubah}(h]h ]h"]h$]h&]uh1jMhj2 ubeh}(h]h ]h"]h$]h&]uh1j.hhhKhj hhubj/)}(h``V4L2_CID_COLOR_KILLER`` ``(boolean)`` Enable the color killer (i. e. force a black & white image in case of a weak video signal). h](j5)}(h'``V4L2_CID_COLOR_KILLER`` ``(boolean)``h](h)}(h``V4L2_CID_COLOR_KILLER``h]hV4L2_CID_COLOR_KILLER}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh }(hj hhhNhNubh)}(h ``(boolean)``h]h (boolean)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1j4hhhKhj} ubjN)}(hhh]h)}(h[Enable the color killer (i. e. force a black & white image in case of a weak video signal).h]h[Enable the color killer (i. e. force a black & white image in case of a weak video signal).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jMhj} ubeh}(h]h ]h"]h$]h&]uh1j.hhhKhj hhubeh}(h]j ah ]h"]v4l2-power-line-frequencyah$]h&]uh1j)hjhhhhhNj }j j sj }j j subh)}(h.. _v4l2-colorfx:h]h}(h]h ]h"]h$]h&]h v4l2-colorfxuh1hhKhjhhhhubj*)}(hhh]j/)}(h\``V4L2_CID_COLORFX`` ``(enum)`` Selects a color effect. The following values are defined: h](j5)}(h``V4L2_CID_COLORFX`` ``(enum)``h](h)}(h``V4L2_CID_COLORFX``h]hV4L2_CID_COLORFX}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh }(hj hhhNhNubh)}(h ``(enum)``h]h(enum)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1j4hhhKhj ubjN)}(hhh]h)}(h9Selects a color effect. The following values are defined:h]h9Selects a color effect. The following values are defined:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jMhj ubeh}(h]h ]h"]h$]h&]uh1j.hhhKhj ubah}(h]j ah ]h"] v4l2-colorfxah$]h&]uh1j)hjhhhhhNj }j.j sj }j j subhtabular_col_spec)}(hhh]h}(h]h ]h"]h$]h&]spec|p{5.7cm}|p{11.8cm}|uh1j3hhhKhjhhubjJ )}(hhh]jO )}(hhh](jT )}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jS hjCubjT )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jS hjCubjj )}(hhh](jo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_NONE``h]h)}(hjeh]hV4L2_COLORFX_NONE}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjcubah}(h]h ]h"]h$]h&]uh1hhhhKhj`ubah}(h]h ]h"]h$]h&]uh1js hj]ubjt )}(hhh]h)}(hColor effect is disabled.h]hColor effect is disabled.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hj]ubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_ANTIQUE``h]h)}(hjh]hV4L2_COLORFX_ANTIQUE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubjt )}(hhh]h)}(hAn aging (old photo) effect.h]hAn aging (old photo) effect.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_ART_FREEZE``h]h)}(hjh]hV4L2_COLORFX_ART_FREEZE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubjt )}(hhh]h)}(hFrost color effect.h]hFrost color effect.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_AQUA``h]h)}(hj%h]hV4L2_COLORFX_AQUA}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1js hjubjt )}(hhh]h)}(hWater color, cool tone.h]hWater color, cool tone.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj@ubah}(h]h ]h"]h$]h&]uh1js hjubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_BW``h]h)}(hjeh]hV4L2_COLORFX_BW}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjcubah}(h]h ]h"]h$]h&]uh1hhhhKhj`ubah}(h]h ]h"]h$]h&]uh1js hj]ubjt )}(hhh]h)}(hBlack and white.h]hBlack and white.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hj]ubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_EMBOSS``h]h)}(hjh]hV4L2_COLORFX_EMBOSS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubjt )}(hhh]h)}(huEmboss, the highlights and shadows replace light/dark boundaries and low contrast areas are set to a gray background.h]huEmboss, the highlights and shadows replace light/dark boundaries and low contrast areas are set to a gray background.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_GRASS_GREEN``h]h)}(hjh]hV4L2_COLORFX_GRASS_GREEN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubjt )}(hhh]h)}(h Grass green.h]h Grass green.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_NEGATIVE``h]h)}(hj%h]hV4L2_COLORFX_NEGATIVE}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1js hjubjt )}(hhh]h)}(h Negative.h]h Negative.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj@ubah}(h]h ]h"]h$]h&]uh1js hjubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_SEPIA``h]h)}(hjeh]hV4L2_COLORFX_SEPIA}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjcubah}(h]h ]h"]h$]h&]uh1hhhhKhj`ubah}(h]h ]h"]h$]h&]uh1js hj]ubjt )}(hhh]h)}(h Sepia tone.h]h Sepia tone.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hj]ubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_SKETCH``h]h)}(hjh]hV4L2_COLORFX_SKETCH}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubjt )}(hhh]h)}(hSketch.h]hSketch.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_SKIN_WHITEN``h]h)}(hjh]hV4L2_COLORFX_SKIN_WHITEN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubjt )}(hhh]h)}(h Skin whiten.h]h Skin whiten.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_SKY_BLUE``h]h)}(hj%h]hV4L2_COLORFX_SKY_BLUE}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1js hjubjt )}(hhh]h)}(h Sky blue.h]h Sky blue.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj@ubah}(h]h ]h"]h$]h&]uh1js hjubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_SOLARIZATION``h]h)}(hjeh]hV4L2_COLORFX_SOLARIZATION}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjcubah}(h]h ]h"]h$]h&]uh1hhhhKhj`ubah}(h]h ]h"]h$]h&]uh1js hj]ubjt )}(hhh]h)}(hySolarization, the image is partially reversed in tone, only color values above or below a certain threshold are inverted.h]hySolarization, the image is partially reversed in tone, only color values above or below a certain threshold are inverted.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hj]ubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_SILHOUETTE``h]h)}(hjh]hV4L2_COLORFX_SILHOUETTE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubjt )}(hhh]h)}(hSilhouette (outline).h]hSilhouette (outline).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_VIVID``h]h)}(hjh]hV4L2_COLORFX_VIVID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubjt )}(hhh]h)}(h Vivid colors.h]h Vivid colors.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_SET_CBCR``h]h)}(hj%h]hV4L2_COLORFX_SET_CBCR}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1js hjubjt )}(hhh]h)}(hsThe Cb and Cr chroma components are replaced by fixed coefficients determined by ``V4L2_CID_COLORFX_CBCR`` control.h](hQThe Cb and Cr chroma components are replaced by fixed coefficients determined by }(hjChhhNhNubh)}(h``V4L2_CID_COLORFX_CBCR``h]hV4L2_CID_COLORFX_CBCR}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjCubh control.}(hjChhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj@ubah}(h]h ]h"]h$]h&]uh1js hjubeh}(h]h ]h"]h$]h&]uh1jn hjZubjo )}(hhh](jt )}(hhh]h)}(h``V4L2_COLORFX_SET_RGB``h]h)}(hjwh]hV4L2_COLORFX_SET_RGB}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuubah}(h]h ]h"]h$]h&]uh1hhhhKhjrubah}(h]h ]h"]h$]h&]uh1js hjoubjt )}(hhh]h)}(hkThe RGB components are replaced by the fixed RGB components determined by ``V4L2_CID_COLORFX_RGB`` control.h](hJThe RGB components are replaced by the fixed RGB components determined by }(hjhhhNhNubh)}(h``V4L2_CID_COLORFX_RGB``h]hV4L2_CID_COLORFX_RGB}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh control.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1js hjoubeh}(h]h ]h"]h$]h&]uh1jn hjZubeh}(h]h ]h"]h$]h&]uh1ji hjCubeh}(h]h ]h"]h$]h&]colsKuh1jN hj@ubah}(h]h ]h"]h$]h&]uh1jI hjhhhNhNubj*)}(hhh](j/)}(hX,``V4L2_CID_COLORFX_RGB`` ``(integer)`` Determines the Red, Green, and Blue coefficients for ``V4L2_COLORFX_SET_RGB`` color effect. Bits [7:0] of the supplied 32 bit value are interpreted as Blue component, bits [15:8] as Green component, bits [23:16] as Red component, and bits [31:24] must be zero. h](j5)}(h&``V4L2_CID_COLORFX_RGB`` ``(integer)``h](h)}(h``V4L2_CID_COLORFX_RGB``h]hV4L2_CID_COLORFX_RGB}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh }(hjhhhNhNubh)}(h ``(integer)``h]h (integer)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1j4hhhMhjubjN)}(hhh]h)}(hXDetermines the Red, Green, and Blue coefficients for ``V4L2_COLORFX_SET_RGB`` color effect. Bits [7:0] of the supplied 32 bit value are interpreted as Blue component, bits [15:8] as Green component, bits [23:16] as Red component, and bits [31:24] must be zero.h](h5Determines the Red, Green, and Blue coefficients for }(hjhhhNhNubh)}(h``V4L2_COLORFX_SET_RGB``h]hV4L2_COLORFX_SET_RGB}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh color effect. Bits [7:0] of the supplied 32 bit value are interpreted as Blue component, bits [15:8] as Green component, bits [23:16] as Red component, and bits [31:24] must be zero.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jMhjubeh}(h]h ]h"]h$]h&]uh1j.hhhMhjubj/)}(h``V4L2_CID_COLORFX_CBCR`` ``(integer)`` Determines the Cb and Cr coefficients for ``V4L2_COLORFX_SET_CBCR`` color effect. Bits [7:0] of the supplied 32 bit value are interpreted as Cr component, bits [15:8] as Cb component and bits [31:16] must be zero. h](j5)}(h'``V4L2_CID_COLORFX_CBCR`` ``(integer)``h](h)}(h``V4L2_CID_COLORFX_CBCR``h]hV4L2_CID_COLORFX_CBCR}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8ubh }(hj8hhhNhNubh)}(h ``(integer)``h]h (integer)}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8ubeh}(h]h ]h"]h$]h&]uh1j4hhhM hj4ubjN)}(hhh]h)}(hDetermines the Cb and Cr coefficients for ``V4L2_COLORFX_SET_CBCR`` color effect. Bits [7:0] of the supplied 32 bit value are interpreted as Cr component, bits [15:8] as Cb component and bits [31:16] must be zero.h](h*Determines the Cb and Cr coefficients for }(hjehhhNhNubh)}(h``V4L2_COLORFX_SET_CBCR``h]hV4L2_COLORFX_SET_CBCR}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeubh color effect. Bits [7:0] of the supplied 32 bit value are interpreted as Cr component, bits [15:8] as Cb component and bits [31:16] must be zero.}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjbubah}(h]h ]h"]h$]h&]uh1jMhj4ubeh}(h]h ]h"]h$]h&]uh1j.hhhM hjhhubj/)}(hG``V4L2_CID_AUTOBRIGHTNESS`` ``(boolean)`` Enable Automatic Brightness. h](j5)}(h)``V4L2_CID_AUTOBRIGHTNESS`` ``(boolean)``h](h)}(h``V4L2_CID_AUTOBRIGHTNESS``h]hV4L2_CID_AUTOBRIGHTNESS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh }(hjhhhNhNubh)}(h ``(boolean)``h]h (boolean)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1j4hhhM hjubjN)}(hhh]h)}(hEnable Automatic Brightness.h]hEnable Automatic Brightness.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1jMhjubeh}(h]h ]h"]h$]h&]uh1j.hhhM hjhhubj/)}(hXa``V4L2_CID_ROTATE`` ``(integer)`` Rotates the image by specified angle. Common angles are 90, 270 and 180. Rotating the image to 90 and 270 will reverse the height and width of the display window. It is necessary to set the new height and width of the picture using the :ref:`VIDIOC_S_FMT ` ioctl according to the rotation angle selected. h](j5)}(h!``V4L2_CID_ROTATE`` ``(integer)``h](h)}(h``V4L2_CID_ROTATE``h]hV4L2_CID_ROTATE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh }(hjhhhNhNubh)}(h ``(integer)``h]h (integer)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1j4hhhMhjubjN)}(hhh]h)}(hX>Rotates the image by specified angle. Common angles are 90, 270 and 180. Rotating the image to 90 and 270 will reverse the height and width of the display window. It is necessary to set the new height and width of the picture using the :ref:`VIDIOC_S_FMT ` ioctl according to the rotation angle selected.h](hRotates the image by specified angle. Common angles are 90, 270 and 180. Rotating the image to 90 and 270 will reverse the height and width of the display window. It is necessary to set the new height and width of the picture using the }(hj hhhNhNubh)}(h":ref:`VIDIOC_S_FMT `h]j4)}(hjh]h VIDIOC_S_FMT}(hjhhhNhNubah}(h]h ](j?stdstd-refeh"]h$]h&]uh1j3hjubah}(h]h ]h"]h$]h&]refdocj refdomainj#reftyperef refexplicitrefwarnjQ vidioc_g_fmtuh1hhhhMhj ubh0 ioctl according to the rotation angle selected.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jMhjubeh}(h]h ]h"]h$]h&]uh1j.hhhMhjhhubj/)}(hXF``V4L2_CID_BG_COLOR`` ``(integer)`` Sets the background color on the current output device. Background color needs to be specified in the RGB24 format. The supplied 32 bit value is interpreted as bits 0-7 Red color information, bits 8-15 Green color information, bits 16-23 Blue color information and bits 24-31 must be zero. h](j5)}(h#``V4L2_CID_BG_COLOR`` ``(integer)``h](h)}(h``V4L2_CID_BG_COLOR``h]hV4L2_CID_BG_COLOR}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOubh }(hjOhhhNhNubh)}(h ``(integer)``h]h (integer)}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOubeh}(h]h ]h"]h$]h&]uh1j4hhhMhjKubjN)}(hhh]h)}(hX!Sets the background color on the current output device. Background color needs to be specified in the RGB24 format. The supplied 32 bit value is interpreted as bits 0-7 Red color information, bits 8-15 Green color information, bits 16-23 Blue color information and bits 24-31 must be zero.h]hX!Sets the background color on the current output device. Background color needs to be specified in the RGB24 format. The supplied 32 bit value is interpreted as bits 0-7 Red color information, bits 8-15 Green color information, bits 16-23 Blue color information and bits 24-31 must be zero.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjyubah}(h]h ]h"]h$]h&]uh1jMhjKubeh}(h]h ]h"]h$]h&]uh1j.hhhMhjhhubj/)}(h``V4L2_CID_ILLUMINATORS_1 V4L2_CID_ILLUMINATORS_2`` ``(boolean)`` Switch on or off the illuminator 1 or 2 of the device (usually a microscope). h](j5)}(hA``V4L2_CID_ILLUMINATORS_1 V4L2_CID_ILLUMINATORS_2`` ``(boolean)``h](h)}(h3``V4L2_CID_ILLUMINATORS_1 V4L2_CID_ILLUMINATORS_2``h]h/V4L2_CID_ILLUMINATORS_1 V4L2_CID_ILLUMINATORS_2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh }(hjhhhNhNubh)}(h ``(boolean)``h]h (boolean)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1j4hhhMhjubjN)}(hhh]h)}(hMSwitch on or off the illuminator 1 or 2 of the device (usually a microscope).h]hMSwitch on or off the illuminator 1 or 2 of the device (usually a microscope).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jMhjubeh}(h]h ]h"]h$]h&]uh1j.hhhMhjhhubj/)}(hXP``V4L2_CID_MIN_BUFFERS_FOR_CAPTURE`` ``(integer)`` This is a read-only control that can be read by the application and used as a hint to determine the number of CAPTURE buffers to pass to REQBUFS. The value is the minimum number of CAPTURE buffers that is necessary for hardware to work. This control is required for stateful decoders. h](j5)}(h2``V4L2_CID_MIN_BUFFERS_FOR_CAPTURE`` ``(integer)``h](h)}(h$``V4L2_CID_MIN_BUFFERS_FOR_CAPTURE``h]h V4L2_CID_MIN_BUFFERS_FOR_CAPTURE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh }(hjhhhNhNubh)}(h ``(integer)``h]h (integer)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1j4hhhM&hjubjN)}(hhh]h)}(hXThis is a read-only control that can be read by the application and used as a hint to determine the number of CAPTURE buffers to pass to REQBUFS. The value is the minimum number of CAPTURE buffers that is necessary for hardware to work. This control is required for stateful decoders.h]hXThis is a read-only control that can be read by the application and used as a hint to determine the number of CAPTURE buffers to pass to REQBUFS. The value is the minimum number of CAPTURE buffers that is necessary for hardware to work. This control is required for stateful decoders.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM"hjubah}(h]h ]h"]h$]h&]uh1jMhjubeh}(h]h ]h"]h$]h&]uh1j.hhhM&hjhhubj/)}(hXM``V4L2_CID_MIN_BUFFERS_FOR_OUTPUT`` ``(integer)`` This is a read-only control that can be read by the application and used as a hint to determine the number of OUTPUT buffers to pass to REQBUFS. The value is the minimum number of OUTPUT buffers that is necessary for hardware to work. This control is required for stateful encoders. h](j5)}(h1``V4L2_CID_MIN_BUFFERS_FOR_OUTPUT`` ``(integer)``h](h)}(h#``V4L2_CID_MIN_BUFFERS_FOR_OUTPUT``Blh]hV4L2_CID_MIN_BUFFERS_FOR_OUTPUT}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0ubh }(hj0hhhNhNubh)}(h ``(integer)``h]h (integer)}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0ubeh}(h]h ]h"]h$]h&]uh1j4hhhM-hj,ubjN)}(hhh]h)}(hXThis is a read-only control that can be read by the application and used as a hint to determine the number of OUTPUT buffers to pass to REQBUFS. The value is the minimum number of OUTPUT buffers that is necessary for hardware to work. This control is required for stateful encoders.h]hXThis is a read-only control that can be read by the application and used as a hint to determine the number of OUTPUT buffers to pass to REQBUFS. The value is the minimum number of OUTPUT buffers that is necessary for hardware to work. This control is required for stateful encoders.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM)hjZubah}(h]h ]h"]h$]h&]uh1jMhj,ubeh}(h]h ]h"]h$]h&]uh1j.hhhM-hjhhubeh}(h]h ]h"]h$]h&]uh1j)hjhhhhhNubh)}(h.. _v4l2-alpha-component:h]h}(h]h ]h"]h$]h&]hv4l2-alpha-componentuh1hhM/hjhhhhubj*)}(hhh](j/)}(hX``V4L2_CID_ALPHA_COMPONENT`` ``(integer)`` Sets the alpha color component. When a capture device (or capture queue of a mem-to-mem device) produces a frame format that includes an alpha component (e.g. :ref:`packed RGB image formats `) and the alpha value is not defined by the device or the mem-to-mem input data this control lets you select the alpha component value of all pixels. When an output device (or output queue of a mem-to-mem device) consumes a frame format that doesn't include an alpha component and the device supports alpha channel processing this control lets you set the alpha component value of all pixels for further processing in the device. h](j5)}(h*``V4L2_CID_ALPHA_COMPONENT`` ``(integer)``h](h)}(h``V4L2_CID_ALPHA_COMPONENT``h]hV4L2_CID_ALPHA_COMPONENT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh }(hjhhhNhNubh)}(h ``(integer)``h]h (integer)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1j4hhhM<hjubjN)}(hhh]h)}(hXxSets the alpha color component. When a capture device (or capture queue of a mem-to-mem device) produces a frame format that includes an alpha component (e.g. :ref:`packed RGB image formats `) and the alpha value is not defined by the device or the mem-to-mem input data this control lets you select the alpha component value of all pixels. When an output device (or output queue of a mem-to-mem device) consumes a frame format that doesn't include an alpha component and the device supports alpha channel processing this control lets you set the alpha component value of all pixels for further processing in the device.h](hSets the alpha color component. When a capture device (or capture queue of a mem-to-mem device) produces a frame format that includes an alpha component (e.g. }(hjhhhNhNubh)}(h,:ref:`packed RGB image formats `h]j4)}(hjh]hpacked RGB image formats}(hjhhhNhNubah}(h]h ](j?stdstd-refeh"]h$]h&]uh1j3hjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjQ pixfmt-rgbuh1hhhhM2hjubhX) and the alpha value is not defined by the device or the mem-to-mem input data this control lets you select the alpha component value of all pixels. When an output device (or output queue of a mem-to-mem device) consumes a frame format that doesn’t include an alpha component and the device supports alpha channel processing this control lets you set the alpha component value of all pixels for further processing in the device.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM2hjubah}(h]h ]h"]h$]h&]uh1jMhjubeh}(h]h ]h"]h$]h&]uh1j.hhhM<hjubj/)}(hd``V4L2_CID_LASTP1`` End of the predefined control IDs (currently ``V4L2_CID_ALPHA_COMPONENT`` + 1). h](j5)}(h``V4L2_CID_LASTP1``h]h)}(hjh]hV4L2_CID_LASTP1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1j4hhhM@hjubjN)}(hhh]h)}(hOEnd of the predefined control IDs (currently ``V4L2_CID_ALPHA_COMPONENT`` + 1).h](h-End of the predefined control IDs (currently }(hjhhhNhNubh)}(h``V4L2_CID_ALPHA_COMPONENT``h]hV4L2_CID_ALPHA_COMPONENT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh + 1).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM?hjubah}(h]h ]h"]h$]h&]uh1jMhjubeh}(h]h ]h"]h$]h&]uh1j.hhhM@hjhhubj/)}(h``V4L2_CID_PRIVATE_BASE`` ID of the first custom (driver specific) control. Applications depending on particular custom controls should check the driver name and version, see :ref:`querycap`. h](j5)}(h``V4L2_CID_PRIVATE_BASE``h]h)}(hjJh]hV4L2_CID_PRIVATE_BASE}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHubah}(h]h ]h"]h$]h&]uh1j4hhhMEhjDubjN)}(hhh]h)}(hID of the first custom (driver specific) control. Applications depending on particular custom controls should check the driver name and version, see :ref:`querycap`.h](hID of the first custom (driver specific) control. Applications depending on particular custom controls should check the driver name and version, see }(hjbhhhNhNubh)}(h:ref:`querycap`h]j4)}(hjlh]hquerycap}(hjnhhhNhNubah}(h]h ](j?stdstd-refeh"]h$]h&]uh1j3hjjubah}(h]h ]h"]h$]h&]refdocj refdomainjxreftyperef refexplicitrefwarnjQquerycapuh1hhhhMChjbubh.}(hjbhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMChj_ubah}(h]h ]h"]h$]h&]uh1jMhjDubeh}(h]h ]h"]h$]h&]uh1j.hhhMEhjhhubeh}(h]jah ]h"]v4l2-alpha-componentah$]h&]uh1j)hjhhhhhNj }jj}sj }jj}subh)}(hXApplications can enumerate the available controls with the :ref:`VIDIOC_QUERYCTRL` and :ref:`VIDIOC_QUERYMENU ` ioctls, get and set a control value with the :ref:`VIDIOC_G_CTRL ` and :ref:`VIDIOC_S_CTRL ` ioctls. Drivers must implement ``VIDIOC_QUERYCTRL``, ``VIDIOC_G_CTRL`` and ``VIDIOC_S_CTRL`` when the device has one or more controls, ``VIDIOC_QUERYMENU`` when it has one or more menu type controls.h](h;Applications can enumerate the available controls with the }(hjhhhNhNubh)}(h:ref:`VIDIOC_QUERYCTRL`h]j4)}(hjh]hVIDIOC_QUERYCTRL}(hjhhhNhNubah}(h]h ](j?stdstd-refeh"]h$]h&]uh1j3hjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjQvidioc_queryctrluh1hhhhMGhjubh and }(hjhhhNhNubh)}(h*:ref:`VIDIOC_QUERYMENU `h]j4)}(hjh]hVIDIOC_QUERYMENU}(hjhhhNhNubah}(h]h ](j?stdstd-refeh"]h$]h&]uh1j3hjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjQvidioc_queryctrluh1hhhhMGhjubh. ioctls, get and set a control value with the }(hjhhhNhNubh)}(h$:ref:`VIDIOC_G_CTRL `h]j4)}(hjh]h VIDIOC_G_CTRL}(hjhhhNhNubah}(h]h ](j?stdstd-refeh"]h$]h&]uh1j3hjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjQ vidioc_g_ctrluh1hhhhMGhjubh and }hjsbh)}(h$:ref:`VIDIOC_S_CTRL `h]j4)}(hjh]h VIDIOC_S_CTRL}(hj!hhhNhNubah}(h]h ](j?stdstd-refeh"]h$]h&]uh1j3hjubah}(h]h ]h"]h$]h&]refdocj refdomainj+reftyperef refexplicitrefwarnjQ vidioc_g_ctrluh1hhhhMGhjubh ioctls. Drivers must implement }(hjhhhNhNubh)}(h``VIDIOC_QUERYCTRL``h]hVIDIOC_QUERYCTRL}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh, }(hjhhhNhNubh)}(h``VIDIOC_G_CTRL``h]h VIDIOC_G_CTRL}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh and }(hjhhhNhNubh)}(h``VIDIOC_S_CTRL``h]h VIDIOC_S_CTRL}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh+ when the device has one or more controls, }(hjhhhNhNubh)}(h``VIDIOC_QUERYMENU``h]hVIDIOC_QUERYMENU}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh, when it has one or more menu type controls.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMGhjhhubh)}(h.. _enum_all_controls:h]h}(h]h ]h"]h$]h&]henum-all-controlsuh1hhMQhjhhhhubeh}(h]( control-idsjeh ]h"]( control ids control-ideh$]h&]uh1hhhhhhhhK