€•ãQŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ1/translations/zh_CN/userspace-api/media/v4l/tuner”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/zh_TW/userspace-api/media/v4l/tuner”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/it_IT/userspace-api/media/v4l/tuner”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/ja_JP/userspace-api/media/v4l/tuner”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/ko_KR/userspace-api/media/v4l/tuner”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/pt_BR/userspace-api/media/v4l/tuner”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ1/translations/sp_SP/userspace-api/media/v4l/tuner”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later”h]”hŒ8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒK/var/lib/git/docbuild/linux/Documentation/userspace-api/media/v4l/tuner.rst”h´KubhŒtarget”“”)”}”(hŒ .. _tuner:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œtuner”uh1hÈh´Khhh²hh³hÇubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒTuners and Modulators”h]”hŒTuners and Modulators”…””}”(hhÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhhØh²hh³hÇh´Kubh×)”}”(hhh]”(hÜ)”}”(hŒTuners”h]”hŒTuners”…””}”(hhîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhhëh²hh³hÇh´K ubhŒ paragraph”“”)”}”(hX‹Video input devices can have one or more tuners demodulating a RF signal. Each tuner is associated with one or more video inputs, depending on the number of RF connectors on the tuner. The ``type`` field of the respective struct :c:type:`v4l2_input` returned by the :ref:`VIDIOC_ENUMINPUT` ioctl is set to ``V4L2_INPUT_TYPE_TUNER`` and its ``tuner`` field contains the index number of the tuner.”h]”(hŒ½Video input devices can have one or more tuners demodulating a RF signal. Each tuner is associated with one or more video inputs, depending on the number of RF connectors on the tuner. The ”…””}”(hhþh²hh³Nh´NubhŒliteral”“”)”}”(hŒ``type``”h]”hŒtype”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhþubhŒ field of the respective struct ”…””}”(hhþh²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_input`”h]”j)”}”(hjh]”hŒ v4l2_input”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-type”eh"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œuserspace-api/media/v4l/tuner”Œ refdomain”j)Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰Œ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)”}”Œdata”]”j<Œ ASTIdentifier”“”)”}”Œ identifier”ŒV4L”sbN†”asbŒ reftarget”Œ v4l2_input”uh1hh³hÇh´KhhþubhŒ returned by the ”…””}”(hhþh²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_ENUMINPUT`”h]”hŒinline”“”)”}”(hjRh]”hŒVIDIOC_ENUMINPUT”…””}”(hjVh²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThjPubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”j`Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆjJŒvidioc_enuminput”uh1hh³hÇh´KhhþubhŒ ioctl is set to ”…””}”(hhþh²hh³Nh´Nubj)”}”(hŒ``V4L2_INPUT_TYPE_TUNER``”h]”hŒV4L2_INPUT_TYPE_TUNER”…””}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhþubhŒ and its ”…””}”(hhþh²hh³Nh´Nubj)”}”(hŒ ``tuner``”h]”hŒtuner”…””}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhþubhŒ. field contains the index number of the tuner.”…””}”(hhþh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Khhëh²hubhý)”}”(hŒLRadio input devices have exactly one tuner with index zero, no video inputs.”h]”hŒLRadio input devices have exactly one tuner with index zero, no video inputs.”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Khhëh²hubhý)”}”(hXfTo query and change tuner properties applications use the :ref:`VIDIOC_G_TUNER ` and :ref:`VIDIOC_S_TUNER ` ioctls, respectively. The struct :c:type:`v4l2_tuner` returned by :ref:`VIDIOC_G_TUNER ` also contains signal status information applicable when the tuner of the current video or radio input is queried.”h]”(hŒ:To query and change tuner properties applications use the ”…””}”(hj®h²hh³Nh´Nubh)”}”(hŒ&:ref:`VIDIOC_G_TUNER `”h]”jU)”}”(hj¸h]”hŒVIDIOC_G_TUNER”…””}”(hjºh²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThj¶ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”jÄŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjJŒvidioc_g_tuner”uh1hh³hÇh´Khj®ubhŒ and ”…””}”(hj®h²hh³Nh´Nubh)”}”(hŒ&:ref:`VIDIOC_S_TUNER `”h]”jU)”}”(hjÜh]”hŒVIDIOC_S_TUNER”…””}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThjÚubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”jèŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjJŒvidioc_g_tuner”uh1hh³hÇh´Khj®ubhŒ" ioctls, respectively. The struct ”…””}”(hj®h²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_tuner`”h]”j)”}”(hjh]”hŒ v4l2_tuner”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j(j)Œc-type”eh"]”h$]”h&]”uh1jhjþubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”j)Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j;j?jJŒ v4l2_tuner”uh1hh³hÇh´Khj®ubhŒ returned by ”…””}”(hj®h²hh³Nh´Nubh)”}”(hŒ&:ref:`VIDIOC_G_TUNER `”h]”jU)”}”(hj#h]”hŒVIDIOC_G_TUNER”…””}”(hj%h²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThj!ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”j/Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjJŒvidioc_g_tuner”uh1hh³hÇh´Khj®ubhŒr also contains signal status information applicable when the tuner of the current video or radio input is queried.”…””}”(hj®h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Khhëh²hubhŒnote”“”)”}”(hXc:ref:`VIDIOC_S_TUNER ` does not switch the current tuner, when there is more than one. The tuner is solely determined by the current video input. Drivers must support both ioctls and set the ``V4L2_CAP_TUNER`` flag in the struct :c:type:`v4l2_capability` returned by the :ref:`VIDIOC_QUERYCAP` ioctl when the device has one or more tuners.”h]”hý)”}”(hXc:ref:`VIDIOC_S_TUNER ` does not switch the current tuner, when there is more than one. The tuner is solely determined by the current video input. Drivers must support both ioctls and set the ``V4L2_CAP_TUNER`` flag in the struct :c:type:`v4l2_capability` returned by the :ref:`VIDIOC_QUERYCAP` ioctl when the device has one or more tuners.”h]”(h)”}”(hŒ&:ref:`VIDIOC_S_TUNER `”h]”jU)”}”(hjWh]”hŒVIDIOC_S_TUNER”…””}”(hjYh²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThjUubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”jcŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjJŒvidioc_g_tuner”uh1hh³hÇh´K"hjQubhŒ© does not switch the current tuner, when there is more than one. The tuner is solely determined by the current video input. Drivers must support both ioctls and set the ”…””}”(hjQh²hh³Nh´Nubj)”}”(hŒ``V4L2_CAP_TUNER``”h]”hŒV4L2_CAP_TUNER”…””}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjQubhŒ flag in the struct ”…””}”(hjQh²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_capability`”h]”j)”}”(hjh]”hŒv4l2_capability”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j(j)Œc-type”eh"]”h$]”h&]”uh1jhj‹ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”j)Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j;j?jJŒv4l2_capability”uh1hh³hÇh´K"hjQubhŒ returned by the ”…””}”(hjQh²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_QUERYCAP`”h]”jU)”}”(hj°h]”hŒVIDIOC_QUERYCAP”…””}”(hj²h²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThj®ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”j¼Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆjJŒvidioc_querycap”uh1hh³hÇh´K"hjQubhŒ. ioctl when the device has one or more tuners.”…””}”(hjQh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K"hjMubah}”(h]”h ]”h"]”h$]”h&]”uh1jKhhëh²hh³hÇh´Nubeh}”(h]”Œtuners”ah ]”h"]”Œtuners”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K ubh×)”}”(hhh]”(hÜ)”}”(hŒ Modulators”h]”hŒ Modulators”…””}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjæh²hh³hÇh´K+ubhý)”}”(hXüVideo output devices can have one or more modulators, that modulate a video signal for radiation or connection to the antenna input of a TV set or video recorder. Each modulator is associated with one or more video outputs, depending on the number of RF connectors on the modulator. The ``type`` field of the respective struct :c:type:`v4l2_output` returned by the :ref:`VIDIOC_ENUMOUTPUT` ioctl is set to ``V4L2_OUTPUT_TYPE_MODULATOR`` and its ``modulator`` field contains the index number of the modulator.”h]”(hXVideo output devices can have one or more modulators, that modulate a video signal for radiation or connection to the antenna input of a TV set or video recorder. Each modulator is associated with one or more video outputs, depending on the number of RF connectors on the modulator. The ”…””}”(hj÷h²hh³Nh´Nubj)”}”(hŒ``type``”h]”hŒtype”…””}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷ubhŒ field of the respective struct ”…””}”(hj÷h²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_output`”h]”j)”}”(hjh]”hŒ v4l2_output”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j(j)Œc-type”eh"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”j)Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j;j?jJŒ v4l2_output”uh1hh³hÇh´K-hj÷ubhŒ returned by the ”…””}”(hj÷h²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_ENUMOUTPUT`”h]”jU)”}”(hj6h]”hŒVIDIOC_ENUMOUTPUT”…””}”(hj8h²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThj4ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”jBŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆjJŒvidioc_enumoutput”uh1hh³hÇh´K-hj÷ubhŒ ioctl is set to ”…””}”(hj÷h²hh³Nh´Nubj)”}”(hŒ``V4L2_OUTPUT_TYPE_MODULATOR``”h]”hŒV4L2_OUTPUT_TYPE_MODULATOR”…””}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷ubhŒ and its ”…””}”(hj÷h²hh³Nh´Nubj)”}”(hŒ ``modulator``”h]”hŒ modulator”…””}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷ubhŒ2 field contains the index number of the modulator.”…””}”(hj÷h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K-hjæh²hubhý)”}”(hŒRRadio output devices have exactly one modulator with index zero, no video outputs.”h]”hŒRRadio output devices have exactly one modulator with index zero, no video outputs.”…””}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K7hjæh²hubhý)”}”(hXŠA video or radio device cannot support both a tuner and a modulator. Two separate device nodes will have to be used for such hardware, one that supports the tuner functionality and one that supports the modulator functionality. The reason is a limitation with the :ref:`VIDIOC_S_FREQUENCY ` ioctl where you cannot specify whether the frequency is for a tuner or a modulator.”h]”(hXA video or radio device cannot support both a tuner and a modulator. Two separate device nodes will have to be used for such hardware, one that supports the tuner functionality and one that supports the modulator functionality. The reason is a limitation with the ”…””}”(hjh²hh³Nh´Nubh)”}”(hŒ.:ref:`VIDIOC_S_FREQUENCY `”h]”jU)”}”(hjšh]”hŒVIDIOC_S_FREQUENCY”…””}”(hjœh²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThj˜ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”j¦Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjJŒvidioc_g_frequency”uh1hh³hÇh´K:hjubhŒT ioctl where you cannot specify whether the frequency is for a tuner or a modulator.”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K:hjæh²hubhý)”}”(hX4To query and change modulator properties applications use the :ref:`VIDIOC_G_MODULATOR ` and :ref:`VIDIOC_S_MODULATOR ` ioctl. Note that :ref:`VIDIOC_S_MODULATOR ` does not switch the current modulator, when there is more than one at all. The modulator is solely determined by the current video output. Drivers must support both ioctls and set the ``V4L2_CAP_MODULATOR`` flag in the struct :c:type:`v4l2_capability` returned by the :ref:`VIDIOC_QUERYCAP` ioctl when the device has one or more modulators.”h]”(hŒ>To query and change modulator properties applications use the ”…””}”(hjÂh²hh³Nh´Nubh)”}”(hŒ.:ref:`VIDIOC_G_MODULATOR `”h]”jU)”}”(hjÌh]”hŒVIDIOC_G_MODULATOR”…””}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThjÊubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”jØŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjJŒvidioc_g_modulator”uh1hh³hÇh´KAhjÂubhŒ and ”…””}”(hjÂh²hh³Nh´Nubh)”}”(hŒ.:ref:`VIDIOC_S_MODULATOR `”h]”jU)”}”(hjðh]”hŒVIDIOC_S_MODULATOR”…””}”(hjòh²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThjîubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”jüŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjJŒvidioc_g_modulator”uh1hh³hÇh´KAhjÂubhŒ ioctl. Note that ”…””}”(hjÂh²hh³Nh´Nubh)”}”(hŒ.:ref:`VIDIOC_S_MODULATOR `”h]”jU)”}”(hjh]”hŒVIDIOC_S_MODULATOR”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”j Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjJŒvidioc_g_modulator”uh1hh³hÇh´KAhjÂubhŒ¹ does not switch the current modulator, when there is more than one at all. The modulator is solely determined by the current video output. Drivers must support both ioctls and set the ”…””}”(hjÂh²hh³Nh´Nubj)”}”(hŒ``V4L2_CAP_MODULATOR``”h]”hŒV4L2_CAP_MODULATOR”…””}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÂubhŒ flag in the struct ”…””}”(hjÂh²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_capability`”h]”j)”}”(hjJh]”hŒv4l2_capability”…””}”(hjLh²hh³Nh´Nubah}”(h]”h ]”(j(j)Œc-type”eh"]”h$]”h&]”uh1jhjHubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”j)Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j;j?jJŒv4l2_capability”uh1hh³hÇh´KAhjÂubhŒ returned by the ”…””}”(hjÂh²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_QUERYCAP`”h]”jU)”}”(hjmh]”hŒVIDIOC_QUERYCAP”…””}”(hjoh²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThjkubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”jyŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆjJŒvidioc_querycap”uh1hh³hÇh´KAhjÂubhŒ2 ioctl when the device has one or more modulators.”…””}”(hjÂh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´KAhjæh²hubeh}”(h]”Œ modulators”ah ]”h"]”Œ modulators”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K+ubh×)”}”(hhh]”(hÜ)”}”(hŒRadio Frequency”h]”hŒRadio Frequency”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjh²hh³hÇh´KNubhý)”}”(hX¡To get and set the tuner or modulator radio frequency applications use the :ref:`VIDIOC_G_FREQUENCY ` and :ref:`VIDIOC_S_FREQUENCY ` ioctl which both take a pointer to a struct :c:type:`v4l2_frequency`. These ioctls are used for TV and radio devices alike. Drivers must support both ioctls when the tuner or modulator ioctls are supported, or when the device is a radio device.”h]”(hŒKTo get and set the tuner or modulator radio frequency applications use the ”…””}”(hj®h²hh³Nh´Nubh)”}”(hŒ.:ref:`VIDIOC_G_FREQUENCY `”h]”jU)”}”(hj¸h]”hŒVIDIOC_G_FREQUENCY”…””}”(hjºh²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThj¶ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”jÄŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjJŒvidioc_g_frequency”uh1hh³hÇh´KPhj®ubhŒ and ”…””}”(hj®h²hh³Nh´Nubh)”}”(hŒ.:ref:`VIDIOC_S_FREQUENCY `”h]”jU)”}”(hjÜh]”hŒVIDIOC_S_FREQUENCY”…””}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”(j(Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThjÚubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”jèŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjJŒvidioc_g_frequency”uh1hh³hÇh´KPhj®ubhŒ- ioctl which both take a pointer to a struct ”…””}”(hj®h²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_frequency`”h]”j)”}”(hjh]”hŒv4l2_frequency”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j(j)Œc-type”eh"]”h$]”h&]”uh1jhjþubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j5Œ refdomain”j)Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j;j?jJŒv4l2_frequency”uh1hh³hÇh´KPhj®ubhŒ°. These ioctls are used for TV and radio devices alike. Drivers must support both ioctls when the tuner or modulator ioctls are supported, or when the device is a radio device.”…””}”(hj®h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´KPhjh²hubeh}”(h]”Œradio-frequency”ah ]”h"]”Œradio frequency”ah$]”h&]”uh1hÖhhØh²hh³hÇh´KNubeh}”(h]”(Œtuners-and-modulators”hÕeh ]”h"]”(Œtuners and modulators”Œtuner”eh$]”h&]”uh1hÖhhh²hh³hÇh´KŒexpect_referenced_by_name”}”j5hÊsŒexpect_referenced_by_id”}”hÕhÊsubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÛNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j_Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”hÕ]”hÊasŒnameids”}”(j5hÕj4j1jãjàjšj—j,j)uŒ nametypes”}”(j5ˆj4‰jã‰jš‰j,‰uh}”(hÕhØj1hØjàhëj—jæj)juŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”hŒsystem_message”“”)”}”(hhh]”hý)”}”(hhh]”hŒ+Hyperlink target "tuner" is not referenced.”…””}”hjÉsbah}”(h]”h ]”h"]”h$]”h&]”uh1hühjÆubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hÇŒline”Kuh1jÄubaŒ transformer”NŒ include_log”]”Œ decoration”Nh²hub.