.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/dev-rdsmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/zh_TW/userspace-api/media/v4l/dev-rdsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/it_IT/userspace-api/media/v4l/dev-rdsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ja_JP/userspace-api/media/v4l/dev-rdsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ko_KR/userspace-api/media/v4l/dev-rdsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/sp_SP/userspace-api/media/v4l/dev-rdsmodnameN 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/dev-rds.rsthKubhtarget)}(h.. _rds:h]h}(h]h ]h"]h$]h&]refidrdsuh1hhKhhhhhhubhsection)}(hhh](htitle)}(h RDS Interfaceh]h RDS Interface}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hXThe Radio Data System transmits supplementary information in binary format, for example the station name or travel information, on an inaudible audio subcarrier of a radio program. This interface is aimed at devices capable of receiving and/or transmitting RDS information.h]hXThe Radio Data System transmits supplementary information in binary format, for example the station name or travel information, on an inaudible audio subcarrier of a radio program. This interface is aimed at devices capable of receiving and/or transmitting RDS information.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hbFor more information see the core RDS standard :ref:`iec62106` and the RBDS standard :ref:`nrsc4`.h](h/For more information see the core RDS standard }(hhhhhNhNubh)}(h:ref:`iec62106`h]hinline)}(hhh]hiec62106}(hhhhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1hhhubah}(h]h ]h"]h$]h&]refdocuserspace-api/media/v4l/dev-rds refdomainjreftyperef refexplicitrefwarn reftargetiec62106uh1hhhhKhhubh and the RBDS standard }(hhhhhNhNubh)}(h :ref:`nrsc4`h]h)}(hjh]hnrsc4}(hjhhhNhNubah}(h]h ](hstdstd-refeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj  refdomainj&reftyperef refexplicitrefwarnjnrsc4uh1hhhhKhhubh.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhnote)}(hNote that the RBDS standard as is used in the USA is almost identical to the RDS standard. Any RDS decoder/encoder can also handle RBDS. Only some of the fields have slightly different meanings. See the RBDS standard for more information.h]h)}(hNote that the RBDS standard as is used in the USA is almost identical to the RDS standard. Any RDS decoder/encoder can also handle RBDS. Only some of the fields have slightly different meanings. See the RBDS standard for more information.h]hNote that the RBDS standard as is used in the USA is almost identical to the RDS standard. Any RDS decoder/encoder can also handle RBDS. Only some of the fields have slightly different meanings. See the RBDS standard for more information.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjDubah}(h]h ]h"]h$]h&]uh1jBhhhhhhhNubh)}(hXyThe RBDS standard also specifies support for MMBS (Modified Mobile Search). This is a proprietary format which seems to be discontinued. The RDS interface does not support this format. Should support for MMBS (or the so-called 'E blocks' in general) be needed, then please contact the linux-media mailing list: `https://linuxtv.org/lists.php `__.h](hX;The RBDS standard also specifies support for MMBS (Modified Mobile Search). This is a proprietary format which seems to be discontinued. The RDS interface does not support this format. Should support for MMBS (or the so-called ‘E blocks’ in general) be needed, then please contact the linux-media mailing list: }(hj\hhhNhNubh reference)}(hA`https://linuxtv.org/lists.php `__h]hhttps://linuxtv.org/lists.php}(hjfhhhNhNubah}(h]h ]h"]h$]h&]namehttps://linuxtv.org/lists.phprefurihttps://linuxtv.org/lists.phpuh1jdhj\ubh.}(hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hQuerying Capabilitiesh]hQuerying Capabilities}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK!ubh)}(hX0Devices supporting the RDS capturing API set the ``V4L2_CAP_RDS_CAPTURE`` flag in the ``capabilities`` field of struct :c:type:`v4l2_capability` returned by the :ref:`VIDIOC_QUERYCAP` ioctl. Any tuner that supports RDS will set the ``V4L2_TUNER_CAP_RDS`` flag in the ``capability`` field of struct :c:type:`v4l2_tuner`. If the driver only passes RDS blocks without interpreting the data the ``V4L2_TUNER_CAP_RDS_BLOCK_IO`` flag has to be set, see :ref:`Reading RDS data `. For future use the flag ``V4L2_TUNER_CAP_RDS_CONTROLS`` has also been defined. However, a driver for a radio tuner with this capability does not yet exist, so if you are planning to write such a driver you should discuss this on the linux-media mailing list: `https://linuxtv.org/lists.php `__.h](h1Devices supporting the RDS capturing API set the }(hjhhhNhNubhliteral)}(h``V4L2_CAP_RDS_CAPTURE``h]hV4L2_CAP_RDS_CAPTURE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh flag in the }(hjhhhNhNubj)}(h``capabilities``h]h capabilities}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field of struct }(hjhhhNhNubh)}(h:c:type:`v4l2_capability`h]j)}(hjh]hv4l2_capability}(hjhhhNhNubah}(h]h ](hcc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)} identifierV4LsbNasbjv4l2_capabilityuh1hhhhK#hjubh returned by the }(hjhhhNhNubh)}(h:ref:`VIDIOC_QUERYCAP`h]h)}(hjh]hVIDIOC_QUERYCAP}(hjhhhNhNubah}(h]h ](hstdstd-refeh"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftyperef refexplicitrefwarnjvidioc_querycapuh1hhhhK#hjubh1 ioctl. Any tuner that supports RDS will set the }(hjhhhNhNubj)}(h``V4L2_TUNER_CAP_RDS``h]hV4L2_TUNER_CAP_RDS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh flag in the }(hjhhhNhNubj)}(h``capability``h]h capability}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field of struct }(hjhhhNhNubh)}(h:c:type:`v4l2_tuner`h]j)}(hj>h]h v4l2_tuner}(hj@hhhNhNubah}(h]h ](hjc-typeeh"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypetype refexplicitrefwarnjjj v4l2_tuneruh1hhhhK#hjubhI. If the driver only passes RDS blocks without interpreting the data the }(hjhhhNhNubj)}(h``V4L2_TUNER_CAP_RDS_BLOCK_IO``h]hV4L2_TUNER_CAP_RDS_BLOCK_IO}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh flag has to be set, see }(hjhhhNhNubh)}(h*:ref:`Reading RDS data `h]h)}(hjsh]hReading RDS data}(hjuhhhNhNubah}(h]h ](hstdstd-refeh"]h$]h&]uh1hhjqubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftyperef refexplicitrefwarnjreading-rds-datauh1hhhhK#hjubh. For future use the flag }(hjhhhNhNubj)}(h``V4L2_TUNER_CAP_RDS_CONTROLS``h]hV4L2_TUNER_CAP_RDS_CONTROLS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh has also been defined. However, a driver for a radio tuner with this capability does not yet exist, so if you are planning to write such a driver you should discuss this on the linux-media mailing list: }(hjhhhNhNubje)}(hA`https://linuxtv.org/lists.php `__h]hhttps://linuxtv.org/lists.php}(hjhhhNhNubah}(h]h ]h"]h$]h&]namehttps://linuxtv.org/lists.phpjvhttps://linuxtv.org/lists.phpuh1jdhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK#hjhhubh)}(hWhether an RDS signal is present can be detected by looking at the ``rxsubchans`` field of struct :c:type:`v4l2_tuner`: the ``V4L2_TUNER_SUB_RDS`` will be set if RDS data was detected.h](hCWhether an RDS signal is present can be detected by looking at the }(hjhhhNhNubj)}(h``rxsubchans``h]h rxsubchans}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field of struct }(hjhhhNhNubh)}(h:c:type:`v4l2_tuner`h]j)}(hjh]h v4l2_tuner}(hjhhhNhNubah}(h]h ](hjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypetype refexplicitrefwarnjjj v4l2_tuneruh1hhhhK2hjubh: the }(hjhhhNhNubj)}(h``V4L2_TUNER_SUB_RDS``h]hV4L2_TUNER_SUB_RDS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh& will be set if RDS data was detected.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK2hjhhubh)}(hXZDevices supporting the RDS output API set the ``V4L2_CAP_RDS_OUTPUT`` flag in the ``capabilities`` field of struct :c:type:`v4l2_capability` returned by the :ref:`VIDIOC_QUERYCAP` ioctl. Any modulator that supports RDS will set the ``V4L2_TUNER_CAP_RDS`` flag in the ``capability`` field of struct :c:type:`v4l2_modulator`. In order to enable the RDS transmission one must set the ``V4L2_TUNER_SUB_RDS`` bit in the ``txsubchans`` field of struct :c:type:`v4l2_modulator`. If the driver only passes RDS blocks without interpreting the data the ``V4L2_TUNER_CAP_RDS_BLOCK_IO`` flag has to be set. If the tuner is capable of handling RDS entities like program identification codes and radio text, the flag ``V4L2_TUNER_CAP_RDS_CONTROLS`` should be set, see :ref:`Writing RDS data ` and :ref:`FM Transmitter Control Reference `.h](h.Devices supporting the RDS output API set the }(hjhhhNhNubj)}(h``V4L2_CAP_RDS_OUTPUT``h]hV4L2_CAP_RDS_OUTPUT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh flag in the }(hjhhhNhNubj)}(h``capabilities``h]h capabilities}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field of struct }(hjhhhNhNubh)}(h:c:type:`v4l2_capability`h]j)}(hjEh]hv4l2_capability}(hjGhhhNhNubah}(h]h ](hjc-typeeh"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypetype refexplicitrefwarnjjjv4l2_capabilityuh1hhhhK6hjubh returned by the }(hjhhhNhNubh)}(h:ref:`VIDIOC_QUERYCAP`h]h)}(hjhh]hVIDIOC_QUERYCAP}(hjjhhhNhNubah}(h]h ](hstdstd-refeh"]h$]h&]uh1hhjfubah}(h]h ]h"]h$]h&]refdocj  refdomainjtreftyperef refexplicitrefwarnjvidioc_querycapuh1hhhhK6hjubh5 ioctl. Any modulator that supports RDS will set the }(hjhhhNhNubj)}(h``V4L2_TUNER_CAP_RDS``h]hV4L2_TUNER_CAP_RDS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh flag in the }(hjhhhNhNubj)}(h``capability``h]h capability}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field of struct }hjsbh)}(h:c:type:`v4l2_modulator`h]j)}(hjh]hv4l2_modulator}(hjhhhNhNubah}(h]h ](hjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypetype refexplicitrefwarnjjjv4l2_modulatoruh1hhhhK6hjubh;. In order to enable the RDS transmission one must set the }(hjhhhNhNubj)}(h``V4L2_TUNER_SUB_RDS``h]hV4L2_TUNER_SUB_RDS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh bit in the }(hjhhhNhNubj)}(h``txsubchans``h]h txsubchans}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field of struct }hjsbh)}(h:c:type:`v4l2_modulator`h]j)}(hjh]hv4l2_modulator}(hjhhhNhNubah}(h]h ](hjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypetype refexplicitrefwarnjjjv4l2_modulatoruh1hhhhK6hjubhI. If the driver only passes RDS blocks without interpreting the data the }(hjhhhNhNubj)}(h``V4L2_TUNER_CAP_RDS_BLOCK_IO``h]hV4L2_TUNER_CAP_RDS_BLOCK_IO}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh flag has to be set. If the tuner is capable of handling RDS entities like program identification codes and radio text, the flag }(hjhhhNhNubj)}(h``V4L2_TUNER_CAP_RDS_CONTROLS``h]hV4L2_TUNER_CAP_RDS_CONTROLS}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh should be set, see }(hjhhhNhNubh)}(h*:ref:`Writing RDS data `h]h)}(hj>h]hWriting RDS data}(hj@hhhNhNubah}(h]h ](hstdstd-refeh"]h$]h&]uh1hhj<ubah}(h]h ]h"]h$]h&]refdocj  refdomainjJreftyperef refexplicitrefwarnjwriting-rds-datauh1hhhhK6hjubh and }(hjhhhNhNubh)}(h8:ref:`FM Transmitter Control Reference `h]h)}(hjbh]h FM Transmitter Control Reference}(hjdhhhNhNubah}(h]h ](hstdstd-refeh"]h$]h&]uh1hhj`ubah}(h]h ]h"]h$]h&]refdocj  refdomainjnreftyperef refexplicitrefwarnjfm-tx-controlsuh1hhhhK6hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK6hjhhubh)}(h.. _reading-rds-data:h]h}(h]h ]h"]h$]h&]hreading-rds-datauh1hhKGhjhhhhubeh}(h]querying-capabilitiesah ]h"]querying capabilitiesah$]h&]uh1hhhhhhhhK!ubh)}(hhh](h)}(hReading RDS datah]hReading RDS data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKJubh)}(h{RDS data can be read from the radio device with the :c:func:`read()` function. The data is packed in groups of three bytes.h](h4RDS data can be read from the radio device with the }(hjhhhNhNubh)}(h:c:func:`read()`h]j)}(hjh]hread()}(hjhhhNhNubah}(h]h ](hjc-funceh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypefunc refexplicitrefwarnjjjreaduh1hhhhKLhjubh7 function. The data is packed in groups of three bytes.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKLhjhhubh)}(h.. _writing-rds-data:h]h}(h]h ]h"]h$]h&]hwriting-rds-datauh1hhKPhjhhhhubeh}(h](jid1eh ]h"](reading rds datareading-rds-dataeh$]h&]uh1hhhhhhhhKJexpect_referenced_by_name}jjsexpect_referenced_by_id}jjsubh)}(hhh](h)}(hWriting RDS datah]hWriting RDS data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKSubh)}(hRDS data can be written to the radio device with the :c:func:`write()` function. The data is packed in groups of three bytes, as follows:h](h5RDS data can be written to the radio device with the }(hjhhhNhNubh)}(h:c:func:`write()`h]j)}(hjh]hwrite()}(hjhhhNhNubah}(h]h ](hjc-funceh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypefunc refexplicitrefwarnjjjwriteuh1hhhhKUhjubhC function. The data is packed in groups of three bytes, as follows:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKUhjhhubeh}(h](jid2eh ]h"](writing rds datawriting-rds-dataeh$]h&]uh1hhhhhhhhKSj}j?jsj}jjsubh)}(hhh](h)}(hRDS datastructuresh]hRDS datastructures}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhhhhhKZubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singleV4L.v4l2_rds_data (C type)c.V4L.v4l2_rds_datahNtauh1jUhjDhhhNhNubhdesc)}(hhh](hdesc_signature)}(h v4l2_rds_datah]hdesc_signature_line)}(htype v4l2_rds_datah](hdesc_sig_keyword)}(htypeh]htype}(hjyhhhNhNubah}(h]h ]kah"]h$]h&]uh1jwhjshhhhhK\ubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjshhhhhK\ubh desc_name)}(h v4l2_rds_datah]h desc_sig_name)}(hjoh]h v4l2_rds_data}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhjshhhhhK\ubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1jqsphinx_line_type declaratorhjmhhhhhK\ubah}(h]jdah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jkhhhK\hjhhhubh desc_content)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjhhhhhhK\ubeh}(h]h ](jtypeeh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1jfhhhjDhNhNubhtable)}(hhh](h)}(hstruct v4l2_rds_datah]hstruct v4l2_rds_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hjubhtgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(h__u8h]h__u8}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchj'ubah}(h]h ]h"]h$]h&]uh1j%hj"ubj&)}(hhh]h)}(h``lsb``h]j)}(hjCh]hlsb}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1hhhhKdhj>ubah}(h]h ]h"]h$]h&]uh1j%hj"ubj&)}(hhh]h)}(h#Least Significant Byte of RDS Blockh]h#Least Significant Byte of RDS Block}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehj^ubah}(h]h ]h"]h$]h&]uh1j%hj"ubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(h__u8h]h__u8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhj~ubah}(h]h ]h"]h$]h&]uh1j%hj{ubj&)}(hhh]h)}(h``msb``h]j)}(hjh]hmsb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKghjubah}(h]h ]h"]h$]h&]uh1j%hj{ubj&)}(hhh]h)}(h"Most Significant Byte of RDS Blockh]h"Most Significant Byte of RDS Block}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjubah}(h]h ]h"]h$]h&]uh1j%hj{ubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(h__u8h]h__u8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjubah}(h]h ]h"]h$]h&]uh1j%hjubj&)}(hhh]h)}(h ``block``h]j)}(hjh]hblock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKjhjubah}(h]h ]h"]h$]h&]uh1j%hjubj&)}(hhh]h)}(hBlock descriptionh]hBlock description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhj ubah}(h]h ]h"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubeh}(h]id3ah ]h"]h$]h&]uh1jhjDhhhNhNubh)}(h.. _v4l2-rds-block:h]h}(h]h ]h"]h$]h&]hv4l2-rds-blockuh1hhKnhjDhhhhubhtabular_col_spec)}(hhh]h}(h]jGah ]h"]v4l2-rds-blockah$]h&]spec|p{2.9cm}|p{14.6cm}|uh1jHhhhKphjDhhj}jQj=sj}jGj=subj)}(hhh](h)}(hBlock descriptionh]hBlock description}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjXubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjiubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjiubj)}(hhh](j!)}(hhh](j&)}(hhh]h)}(hBits 0-2h]hBits 0-2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhjubah}(h]h ]h"]h$]h&]uh1j%hjubj&)}(hhh]h)}(h(Block (aka offset) of the received data.h]h(Block (aka offset) of the received data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKxhjubah}(h]h ]h"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(hBits 3-5h]hBits 3-5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhjubah}(h]h ]h"]h$]h&]uh1j%hjubj&)}(hhh]h)}(hCDeprecated. Currently identical to bits 0-2. Do not use these bits.h]hCDeprecated. Currently identical to bits 0-2. Do not use these bits.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKzhjubah}(h]h ]h"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(hBit 6h]hBit 6}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK|hjubah}(h]h ]h"]h$]h&]uh1j%hjubj&)}(hhh]h)}(hICorrected bit. Indicates that an error was corrected for this data block.h]hICorrected bit. Indicates that an error was corrected for this data block.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hj ubah}(h]h ]h"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(hBit 7h]hBit 7}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj+ubah}(h]h ]h"]h$]h&]uh1j%hj(ubj&)}(hhh]h)}(hYError bit. Indicates that an uncorrectable error occurred during reception of this block.h]hYError bit. Indicates that an uncorrectable error occurred during reception of this block.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjBubah}(h]h ]h"]h$]h&]uh1j%hj(ubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]colsKuh1jhjXubeh}(h]id4ah ]h"]h$]h&]uh1jhjDhhhNhNubh)}(h.. _v4l2-rds-block-codes:h]h}(h]h ]h"]h$]h&]hv4l2-rds-block-codesuh1hhKhjDhhhhubjI)}(hhh]h}(h]j}ah ]h"]v4l2-rds-block-codesah$]h&]jT%|p{6.4cm}|p{2.0cm}|p{1.2cm}|p{7.0cm}|uh1jHhhhKhjDhhj}jjssj}j}jssubj)}(hhh](h)}(h Block definesh]h Block defines}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh](j!)}(hhh](j&)}(hhh]h)}(hV4L2_RDS_BLOCK_MSKh]hV4L2_RDS_BLOCK_MSK}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j%hjubj&)}(hhh]h}(h]h ]h"]h$]h&]uh1j%hjubj&)}(hhh]h)}(h7h]h7}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j%hjubj&)}(hhh]h)}(h&Mask for bits 0-2 to get the block ID.h]h&Mask for bits 0-2 to get the block ID.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hjubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(hV4L2_RDS_BLOCK_Ah]hV4L2_RDS_BLOCK_A}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj$ ubah}(h]h ]h"]h$]h&]uh1j%hj! ubj&)}(hhh]h}(h]h ]h"]h$]h&]uh1j%hj! ubj&)}(hhh]h)}(h0h]h0}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjD ubah}(h]h ]h"]h$]h&]uh1j%hj! ubj&)}(hhh]h)}(hBlock A.h]hBlock A.}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj[ ubah}(h]h ]h"]h$]h&]uh1j%hj! ubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(hV4L2_RDS_BLOCK_Bh]hV4L2_RDS_BLOCK_B}(hj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj{ ubah}(h]h ]h"]h$]h&]uh1j%hjx ubj&)}(hhh]h}(h]h ]h"]h$]h&]uh1j%hjx ubj&)}(hhh]h)}(h1h]h1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hjx ubj&)}(hhh]h)}(hBlock B.h]hBlock B.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hjx ubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(hV4L2_RDS_BLOCK_Ch]hV4L2_RDS_BLOCK_C}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj ubj&)}(hhh]h}(h]h ]h"]h$]h&]uh1j%hj ubj&)}(hhh]h)}(h2h]h2}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj ubj&)}(hhh]h)}(hBlock C.h]hBlock C.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj ubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(hV4L2_RDS_BLOCK_Dh]hV4L2_RDS_BLOCK_D}(hj, hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj) ubah}(h]h ]h"]h$]h&]uh1j%hj& ubj&)}(hhh]h}(h]h ]h"]h$]h&]uh1j%hj& ubj&)}(hhh]h)}(h3h]h3}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjI ubah}(h]h ]h"]h$]h&]uh1j%hj& ubj&)}(hhh]h)}(hBlock D.h]hBlock D.}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj` ubah}(h]h ]h"]h$]h&]uh1j%hj& ubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(hV4L2_RDS_BLOCK_C_ALTh]hV4L2_RDS_BLOCK_C_ALT}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj} ubj&)}(hhh]h}(h]h ]h"]h$]h&]uh1j%hj} ubj&)}(hhh]h)}(h4h]h4}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj} ubj&)}(hhh]h)}(h Block C'.h]h Block C’.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj} ubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(hV4L2_RDS_BLOCK_INVALIDh]hV4L2_RDS_BLOCK_INVALID}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj ubj&)}(hhh]h)}(h read-onlyh]h read-only}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj ubj&)}(hhh]h)}(hjh]h7}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj ubj&)}(hhh]h)}(hAn invalid block.h]hAn invalid block.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj ubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(hV4L2_RDS_BLOCK_CORRECTEDh]hV4L2_RDS_BLOCK_CORRECTED}(hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj; ubah}(h]h ]h"]h$]h&]uh1j%hj8 ubj&)}(hhh]h)}(h read-onlyh]h read-only}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjR ubah}(h]h ]h"]h$]h&]uh1j%hj8 ubj&)}(hhh]h)}(h0x40h]h0x40}(hjl hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhji ubah}(h]h ]h"]h$]h&]uh1j%hj8 ubj&)}(hhh]h)}(h'A bit error was detected but corrected.h]h'A bit error was detected but corrected.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj8 ubeh}(h]h ]h"]h$]h&]uh1j hjubj!)}(hhh](j&)}(hhh]h)}(hV4L2_RDS_BLOCK_ERRORh]hV4L2_RDS_BLOCK_ERROR}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj ubj&)}(hhh]h)}(h read-onlyh]h read-only}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj ubj&)}(hhh]h)}(h0x80h]h0x80}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj ubj&)}(hhh]h)}(h An uncorrectable error occurred.h]h An uncorrectable error occurred.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j%hj ubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubeh}(h]id5ah ]h"]h$]h&]uh1jhjDhhhNhNubeh}(h]rds-datastructuresah ]h"]rds datastructuresah$]h&]uh1hhhhhhhhKZubeh}(h]( rds-interfaceheh ]h"]( rds interfacerdseh$]h&]uh1hhhhhhhhKj}j$ hsj}hhsubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksj%footnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjK error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}(h]haj]jaj]jajG]j=aj}]jsaunameids}(j$ hj# j jjjjjjj?jj>j;j j jQjGjj}u nametypes}(j$ j# jjjj?j>j jQjuh}(hhj hjjjjjjjjj;jj jDjdjmjGjJj}j~j8jjnjXj ju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jY KsRparse_messages]transform_messages](hsystem_message)}(hhh]h)}(hhh]h)Hyperlink target "rds" is not referenced.}hj sbah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineKuh1j ubj )}(hhh]h)}(hhh]h6Hyperlink target "reading-rds-data" is not referenced.}hj sbah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypej sourcehlineKGuh1j ubj )}(hhh]h)}(hhh]h6Hyperlink target "writing-rds-data" is not referenced.}hj sbah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypej sourcehlineKPuh1j ubj )}(hhh]h)}(hhh]h4Hyperlink target "v4l2-rds-block" is not referenced.}hj sbah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypej sourcehlineKnuh1j ubj )}(hhh]h)}(hhh]h:Hyperlink target "v4l2-rds-block-codes" is not referenced.}hj" sbah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypej sourcehlineKuh1j ube transformerN include_log] decorationNhhub.