gsphinx.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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/pt_BR/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)}(hjh]hiec62106}(hj hhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocuserspace-api/media/v4l/dev-rds refdomainjreftyperef refexplicitrefwarn reftargetiec62106uh1hhhhKhhubh and the RBDS standard }(hhhhhNhNubh)}(h :ref:`nrsc4`h]j)}(hj.h]hnrsc4}(hj0hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]refdocj  refdomainj:reftyperef refexplicitrefwarnj&nrsc4uh1hhhhKhhubh.}(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.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjXubah}(h]h ]h"]h$]h&]uh1jVhhhhhhhNubh)}(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: }(hjphhhNhNubh reference)}(hA`https://linuxtv.org/lists.php `__h]hhttps://linuxtv.org/lists.php}(hjzhhhNhNubah}(h]h ]h"]h$]h&]namehttps://linuxtv.org/lists.phprefurihttps://linuxtv.org/lists.phpuh1jxhjpubh.}(hjphhhNhNubeh}(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 ](jcc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)} identifierV4LsbNasbj&v4l2_capabilityuh1hhhhK#hjubh returned by the }(hjhhhNhNubh)}(h:ref:`VIDIOC_QUERYCAP`h]j)}(hj h]hVIDIOC_QUERYCAP}(hj hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftyperef refexplicitrefwarnj&vidioc_querycapuh1hhhhK#hjubh1 ioctl. Any tuner that supports RDS will set the }(hjhhhNhNubj)}(h``V4L2_TUNER_CAP_RDS``h]hV4L2_TUNER_CAP_RDS}(hj,hhhNhNubah}(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)}(hjRh]h v4l2_tuner}(hjThhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjPubah}(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}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh flag has to be set, see }(hjhhhNhNubh)}(h*:ref:`Reading RDS data `h]j)}(hjh]hReading RDS data}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftyperef refexplicitrefwarnj&reading-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: }(hjhhhNhNubjy)}(hA`https://linuxtv.org/lists.php `__h]hhttps://linuxtv.org/lists.php}(hjhhhNhNubah}(h]h ]h"]h$]h&]namehttps://linuxtv.org/lists.phpjhttps://linuxtv.org/lists.phpuh1jxhjubh.}(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 ](jjc-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 }(hj+hhhNhNubj)}(h``V4L2_CAP_RDS_OUTPUT``h]hV4L2_CAP_RDS_OUTPUT}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh flag in the }(hj+hhhNhNubj)}(h``capabilities``h]h capabilities}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh field of struct }(hj+hhhNhNubh)}(h:c:type:`v4l2_capability`h]j)}(hjYh]hv4l2_capability}(hj[hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypetype refexplicitrefwarnjjj&v4l2_capabilityuh1hhhhK6hj+ubh returned by the }(hj+hhhNhNubh)}(h:ref:`VIDIOC_QUERYCAP`h]j)}(hj|h]hVIDIOC_QUERYCAP}(hj~hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftyperef refexplicitrefwarnj&vidioc_querycapuh1hhhhK6hj+ubh5 ioctl. Any modulator that supports RDS will set the }(hj+hhhNhNubj)}(h``V4L2_TUNER_CAP_RDS``h]hV4L2_TUNER_CAP_RDS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh flag in the }(hj+hhhNhNubj)}(h``capability``h]h capability}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh field of struct }hj+sbh)}(h:c:type:`v4l2_modulator`h]j)}(hjh]hv4l2_modulator}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypetype refexplicitrefwarnjjj&v4l2_modulatoruh1hhhhK6hj+ubh;. In order to enable the RDS transmission one must set the }(hj+hhhNhNubj)}(h``V4L2_TUNER_SUB_RDS``h]hV4L2_TUNER_SUB_RDS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh bit in the }(hj+hhhNhNubj)}(h``txsubchans``h]h txsubchans}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh field of struct }hj+sbh)}(h:c:type:`v4l2_modulator`h]j)}(hj h]hv4l2_modulator}(hj hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypetype refexplicitrefwarnjjj&v4l2_modulatoruh1hhhhK6hj+ubhI. If the driver only passes RDS blocks without interpreting the data the }(hj+hhhNhNubj)}(h``V4L2_TUNER_CAP_RDS_BLOCK_IO``h]hV4L2_TUNER_CAP_RDS_BLOCK_IO}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh flag has to be set. If the tuner is capable of handling RDS entities like program identification codes and radio text, the flag }(hj+hhhNhNubj)}(h``V4L2_TUNER_CAP_RDS_CONTROLS``h]hV4L2_TUNER_CAP_RDS_CONTROLS}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh should be set, see }(hj+hhhNhNubh)}(h*:ref:`Writing RDS data `h]j)}(hjRh]hWriting RDS data}(hjThhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]refdocj  refdomainj^reftyperef refexplicitrefwarnj&writing-rds-datauh1hhhhK6hj+ubh and }(hj+hhhNhNubh)}(h8:ref:`FM Transmitter Control Reference `h]j)}(hjvh]h FM Transmitter Control Reference}(hjxhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftyperef refexplicitrefwarnj&fm-tx-controlsuh1hhhhK6hj+ubh.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK6hjhhubh)}(h.. _reading-rds-data:h]h}(h]h ]h"]h$]h&]hԌreading-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 ](jjc-funceh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypefunc refexplicitrefwarnjjj&readuh1hhhhKLhjubh7 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&]hԌwriting-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&]uh1hhj hhhhhKSubh)}(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)}(hj&h]hwrite()}(hj(hhhNhNubah}(h]h ](jjc-funceh"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]refdocj  refdomainjreftypefunc refexplicitrefwarnjjj&writeuh1hhhhKUhjubhC function. The data is packed in groups of three bytes, as follows:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKUhj hhubeh}(h](jid2eh ]h"](writing rds datawriting-rds-dataeh$]h&]uh1hhhhhhhhKSj}jSjsj }jjsubh)}(hhh](h)}(hRDS datastructuresh]hRDS datastructures}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhhhhhKZubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singleV4L.v4l2_rds_data (C type)c.V4L.v4l2_rds_datahNtauh1jihjXhhhNhNubhdesc)}(hhh](hdesc_signature)}(h v4l2_rds_datah]hdesc_signature_line)}(htype v4l2_rds_datah](hdesc_sig_keyword)}(htypeh]htype}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhhhhK\ubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhhhK\ubh desc_name)}(h v4l2_rds_datah]h desc_sig_name)}(hjh]h v4l2_rds_data}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhjhhhhhK\ubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1jsphinx_line_type declaratorhjhhhhhK\ubah}(h]jxah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhhhK\hj|hhubh desc_content)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj|hhhhhK\ubeh}(h]h ](jtypeeh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1jzhhhjXhNhNubhtable)}(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&]colwidthKuh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(h__u8h]h__u8}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchj;ubah}(h]h ]h"]h$]h&]uh1j9hj6ubj:)}(hhh]h)}(h``lsb``h]j)}(hjWh]hlsb}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hhhhKdhjRubah}(h]h ]h"]h$]h&]uh1j9hj6ubj:)}(hhh]h)}(h#Least Significant Byte of RDS Blockh]h#Least Significant Byte of RDS Block}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehjrubah}(h]h ]h"]h$]h&]uh1j9hj6ubeh}(h]h ]h"]h$]h&]uh1j4hj1ubj5)}(hhh](j:)}(hhh]h)}(h__u8h]h__u8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhjubah}(h]h ]h"]h$]h&]uh1j9hjubj:)}(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&]uh1j9hjubj:)}(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&]uh1j9hjubeh}(h]h ]h"]h$]h&]uh1j4hj1ubj5)}(hhh](j:)}(hhh]h)}(h__u8h]h__u8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjubah}(h]h ]h"]h$]h&]uh1j9hjubj:)}(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&]uh1j9hjubj:)}(hhh]h)}(hBlock descriptionh]hBlock description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhj ubah}(h]h ]h"]h$]h&]uh1j9hjubeh}(h]h ]h"]h$]h&]uh1j4hj1ubeh}(h]h ]h"]h$]h&]uh1j/hj ubeh}(h]h ]h"]h$]h&]colsKuh1j hjubeh}(h]id3ah ]h"]h$]h&]uh1jhjXhhhNhNubh)}(h.. _v4l2-rds-block:h]h}(h]h ]h"]h$]h&]hԌv4l2-rds-blockuh1hhKnhjXhhhhubhtabular_col_spec)}(hhh]h}(h]j[ah ]h"]v4l2-rds-blockah$]h&]spec|p{2.9cm}|p{14.6cm}|uh1j\hhhKphjXhhj}jejQsj }j[jQsubj)}(hhh](h)}(hBlock descriptionh]hBlock description}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjlubj )}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj}ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj}ubj0)}(hhh](j5)}(hhh](j:)}(hhh]h)}(hBits 0-2h]hBits 0-2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhjubah}(h]h ]h"]h$]h&]uh1j9hjubj:)}(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&]uh1j9hjubeh}(h]h ]h"]h$]h&]uh1j4hjubj5)}(hhh](j:)}(hhh]h)}(hBits 3-5h]hBits 3-5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhjubah}(h]h ]h"]h$]h&]uh1j9hjubj:)}(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&]uh1j9hjubeh}(h]h ]h"]h$]h&]uh1j4hjubj5)}(hhh](j:)}(hhh]h)}(hBit 6h]hBit 6}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK|hjubah}(h]h ]h"]h$]h&]uh1j9hjubj:)}(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.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hjubah}(h]h ]h"]h$]h&]uh1j9hjubeh}(h]h ]h"]h$]h&]uh1j4hjubj5)}(hhh](j:)}(hhh]h)}(hBit 7h]hBit 7}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?ubah}(h]h ]h"]h$]h&]uh1j9hj<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.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjVubah}(h]h ]h"]h$]h&]uh1j9hj<ubeh}(h]h ]h"]h$]h&]uh1j4hjubeh}(h]h ]h"]h$]h&]uh1j/hj}ubeh}(h]h ]h"]h$]h&]colsKuh1j hjlubeh}(h]id4ah ]h"]h$]h&]uh1jhjXhhhNhNubh)}(h.. _v4l2-rds-block-codes:h]h}(h]h ]h"]h$]h&]hԌv4l2-rds-block-codesuh1hhKhjXhhhhubj])}(hhh]h}(h]jah ]h"]v4l2-rds-block-codesah$]h&]jh%|p{6.4cm}|p{2.0cm}|p{1.2cm}|p{7.0cm}|uh1j\hhhKhjXhhj}jjsj }jjsubj)}(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&]colwidthKuh1jhjubj0)}(hhh](j5)}(hhh](j:)}(hhh]h)}(hV4L2_RDS_BLOCK_MSKh]hV4L2_RDS_BLOCK_MSK}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j9hjubj:)}(hhh]h}(h]h ]h"]h$]h&]uh1j9hjubj:)}(hhh]h)}(h7h]h7}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j9hjubj:)}(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&]uh1j9hjubeh}(h]h ]h"]h$]h&]uh1j4hjubj5)}(hhh](j:)}(hhh]h)}(hV4L2_RDS_BLOCK_Ah]hV4L2_RDS_BLOCK_A}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj8 ubah}(h]h ]h"]h$]h&]uh1j9hj5 ubj:)}(hhh]h}(h]h ]h"]h$]h&]uh1j9hj5 ubj:)}(hhh]h)}(h0h]h0}(hj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjX ubah}(h]h ]h"]h$]h&]uh1j9hj5 ubj:)}(hhh]h)}(hBlock A.h]hBlock A.}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjo ubah}(h]h ]h"]h$]h&]uh1j9hj5 ubeh}(h]h ]h"]h$]h&]uh1j4hjubj5)}(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&]uh1j9hj ubj:)}(hhh]h}(h]h ]h"]h$]h&]uh1j9hj ubj:)}(hhh]h)}(h1h]h1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j9hj ubj:)}(hhh]h)}(hBlock B.h]hBlock B.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j9hj ubeh}(h]h ]h"]h$]h&]uh1j4hjubj5)}(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&]uh1j9hj ubj:)}(hhh]h}(h]h ]h"]h$]h&]uh1j9hj ubj:)}(hhh]h)}(h2h]h2}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j9hj ubj:)}(hhh]h)}(hBlock C.h]hBlock C.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j9hj ubeh}(h]h ]h"]h$]h&]uh1j4hjubj5)}(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&]uh1j9hj: ubj:)}(hhh]h}(h]h ]h"]h$]h&]uh1j9hj: ubj:)}(hhh]h)}(h3h]h3}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj] ubah}(h]h ]h"]h$]h&]uh1j9hj: ubj:)}(hhh]h)}(hBlock D.h]hBlock D.}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjt ubah}(h]h ]h"]h$]h&]uh1j9hj: ubeh}(h]h ]h"]h$]h&]uh1j4hjubj5)}(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&]uh1j9hj ubj:)}(hhh]h}(h]h ]h"]h$]h&]uh1j9hj ubj:)}(hhh]h)}(h4h]h4}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j9hj ubj:)}(hhh]h)}(h Block C'.h]h Block C’.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j9hj ubeh}(h]h ]h"]h$]h&]uh1j4hjubj5)}(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&]uh1j9hj ubj:)}(hhh]h)}(h read-onlyh]h read-only}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j9hj ubj:)}(hhh]h)}(hj h]h7}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j9hj ubj:)}(hhh]h)}(hAn invalid block.h]hAn invalid block.}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj/ ubah}(h]h ]h"]h$]h&]uh1j9hj ubeh}(h]h ]h"]h$]h&]uh1j4hjubj5)}(hhh](j:)}(hhh]h)}(hV4L2_RDS_BLOCK_CORRECTEDh]hV4L2_RDS_BLOCK_CORRECTED}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjO ubah}(h]h ]h"]h$]h&]uh1j9hjL ubj:)}(hhh]h)}(h read-onlyh]h read-only}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjf ubah}(h]h ]h"]h$]h&]uh1j9hjL ubj:)}(hhh]h)}(h0x40h]h0x40}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj} ubah}(h]h ]h"]h$]h&]uh1j9hjL 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&]uh1j9hjL ubeh}(h]h ]h"]h$]h&]uh1j4hjubj5)}(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&]uh1j9hj ubj:)}(hhh]h)}(h read-onlyh]h read-only}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j9hj ubj:)}(hhh]h)}(h0x80h]h0x80}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j9hj 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&]uh1j9hj ubeh}(h]h ]h"]h$]h&]uh1j4hjubeh}(h]h ]h"]h$]h&]uh1j/hjubeh}(h]h ]h"]h$]h&]colsKuh1j hjubeh}(h]id5ah ]h"]h$]h&]uh1jhjXhhhNhNubeh}(h]rds-datastructuresah ]h"]rds datastructuresah$]h&]uh1hhhhhhhhKZubeh}(h]( rds-interfaceheh ]h"]( rds interfacerdseh$]h&]uh1hhhhhhhhKj}j8 hsj }hhsubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksj9footnote_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_handlerj_ error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _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]jaj[]jQaj]jaunameids}(j8 hj7 j4 jjjjjjjSjjRjOj/ j, jej[jju nametypes}(j8 j7 jjjjSjRj/ jejuh}(hhj4 hjjjjjjjj jOj j, jXjxjj[j^jjjLjjjlj% ju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jm 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&]levelKtypeINFOsourcehnjlineKuh1j 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 sourcehnjlineKGuh1j 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 sourcehnjlineKPuh1j 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 sourcehnjlineKnuh1j ubj )}(hhh]h)}(hhh]h:Hyperlink target "v4l2-rds-block-codes" is not referenced.}hj6 sbah}(h]h ]h"]h$]h&]uh1hhj3 ubah}(h]h ]h"]h$]h&]levelKtypej sourcehnjlineKuh1j ube transformerN include_log] decorationNhhub.