€• eŒ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”Œ3/translations/zh_CN/userspace-api/media/v4l/dev-sdr”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ3/translations/zh_TW/userspace-api/media/v4l/dev-sdr”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ3/translations/it_IT/userspace-api/media/v4l/dev-sdr”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ3/translations/ja_JP/userspace-api/media/v4l/dev-sdr”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ3/translations/ko_KR/userspace-api/media/v4l/dev-sdr”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ3/translations/pt_BR/userspace-api/media/v4l/dev-sdr”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ3/translations/sp_SP/userspace-api/media/v4l/dev-sdr”Œ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³ŒM/var/lib/git/docbuild/linux/Documentation/userspace-api/media/v4l/dev-sdr.rst”h´KubhŒtarget”“”)”}”(hŒ.. _sdr:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œsdr”uh1hÈh´Khhh²hh³hÇubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ&Software Defined Radio Interface (SDR)”h]”hŒ&Software Defined Radio Interface (SDR)”…””}”(hhÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhhØh²hh³hÇh´KubhŒ paragraph”“”)”}”(hŒÑSDR is an abbreviation of Software Defined Radio, the radio device which uses application software for modulation or demodulation. This interface is intended for controlling and data streaming of such devices.”h]”hŒÑSDR is an abbreviation of Software Defined Radio, the radio device which uses application software for modulation or demodulation. This interface is intended for controlling and data streaming of such devices.”…””}”(hhíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K hhØh²hubhì)”}”(hŒµSDR devices are accessed through character device special files named ``/dev/swradio0`` to ``/dev/swradio255`` with major number 81 and dynamically allocated minor numbers 0 to 255.”h]”(hŒFSDR devices are accessed through character device special files named ”…””}”(hhûh²hh³Nh´NubhŒliteral”“”)”}”(hŒ``/dev/swradio0``”h]”hŒ /dev/swradio0”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhûubhŒ to ”…””}”(hhûh²hh³Nh´Nubj)”}”(hŒ``/dev/swradio255``”h]”hŒ/dev/swradio255”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhûubhŒG with major number 81 and dynamically allocated minor numbers 0 to 255.”…””}”(hhûh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KhhØh²hubh×)”}”(hhh]”(hÜ)”}”(hŒQuerying Capabilities”h]”hŒQuerying Capabilities”…””}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj/h²hh³hÇh´Kubhì)”}”(hXRDevices supporting the SDR receiver interface set the ``V4L2_CAP_SDR_CAPTURE`` and ``V4L2_CAP_TUNER`` flag in the ``capabilities`` field of struct :c:type:`v4l2_capability` returned by the :ref:`VIDIOC_QUERYCAP` ioctl. That flag means the device has an Analog to Digital Converter (ADC), which is a mandatory element for the SDR receiver.”h]”(hŒ6Devices supporting the SDR receiver interface set the ”…””}”(hj@h²hh³Nh´Nubj)”}”(hŒ``V4L2_CAP_SDR_CAPTURE``”h]”hŒV4L2_CAP_SDR_CAPTURE”…””}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj@ubhŒ and ”…””}”(hj@h²hh³Nh´Nubj)”}”(hŒ``V4L2_CAP_TUNER``”h]”hŒV4L2_CAP_TUNER”…””}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj@ubhŒ flag in the ”…””}”(hj@h²hh³Nh´Nubj)”}”(hŒ``capabilities``”h]”hŒ capabilities”…””}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj@ubhŒ field of struct ”…””}”(hj@h²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_capability`”h]”j)”}”(hj€h]”hŒv4l2_capability”…””}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-type”eh"]”h$]”h&]”uh1jhj~ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œuserspace-api/media/v4l/dev-sdr”Œ refdomain”jŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰Œ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)”}”Œdata”]”j Œ ASTIdentifier”“”)”}”Œ identifier”ŒV4L”sbN†”asbŒ reftarget”Œv4l2_capability”uh1hh³hÇh´Khj@ubhŒ returned by the ”…””}”(hj@h²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_QUERYCAP`”h]”hŒinline”“”)”}”(hj¶h]”hŒVIDIOC_QUERYCAP”…””}”(hjºh²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hj´ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”jÄŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj®Œvidioc_querycap”uh1hh³hÇh´Khj@ubhŒ ioctl. That flag means the device has an Analog to Digital Converter (ADC), which is a mandatory element for the SDR receiver.”…””}”(hj@h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khj/h²hubhì)”}”(hX[Devices supporting the SDR transmitter interface set the ``V4L2_CAP_SDR_OUTPUT`` and ``V4L2_CAP_MODULATOR`` flag in the ``capabilities`` field of struct :c:type:`v4l2_capability` returned by the :ref:`VIDIOC_QUERYCAP` ioctl. That flag means the device has an Digital to Analog Converter (DAC), which is a mandatory element for the SDR transmitter.”h]”(hŒ9Devices supporting the SDR transmitter interface set the ”…””}”(hjàh²hh³Nh´Nubj)”}”(hŒ``V4L2_CAP_SDR_OUTPUT``”h]”hŒV4L2_CAP_SDR_OUTPUT”…””}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjàubhŒ and ”…””}”(hjàh²hh³Nh´Nubj)”}”(hŒ``V4L2_CAP_MODULATOR``”h]”hŒV4L2_CAP_MODULATOR”…””}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjàubhŒ flag in the ”…””}”(hjàh²hh³Nh´Nubj)”}”(hŒ``capabilities``”h]”hŒ capabilities”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjàubhŒ field of struct ”…””}”(hjàh²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_capability`”h]”j)”}”(hj h]”hŒv4l2_capability”…””}”(hj"h²hh³Nh´Nubah}”(h]”h ]”(jŒjŒc-type”eh"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”jŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jŸj£j®Œv4l2_capability”uh1hh³hÇh´KhjàubhŒ returned by the ”…””}”(hjàh²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_QUERYCAP`”h]”j¹)”}”(hjCh]”hŒVIDIOC_QUERYCAP”…””}”(hjEh²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hjAubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”jOŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj®Œvidioc_querycap”uh1hh³hÇh´KhjàubhŒ‚ ioctl. That flag means the device has an Digital to Analog Converter (DAC), which is a mandatory element for the SDR transmitter.”…””}”(hjàh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khj/h²hubhì)”}”(hŒJAt least one of the read/write or streaming I/O methods must be supported.”h]”hŒJAt least one of the read/write or streaming I/O methods must be supported.”…””}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K&hj/h²hubeh}”(h]”Œquerying-capabilities”ah ]”h"]”Œquerying capabilities”ah$]”h&]”uh1hÖhhØh²hh³hÇh´Kubh×)”}”(hhh]”(hÜ)”}”(hŒSupplemental Functions”h]”hŒSupplemental Functions”…””}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjh²hh³hÇh´K+ubhì)”}”(hŒÔSDR devices can support :ref:`controls `, and must support the :ref:`tuner` ioctls. Tuner ioctls are used for setting the ADC/DAC sampling rate (sampling frequency) and the possible radio frequency (RF).”h]”(hŒSDR devices can support ”…””}”(hj’h²hh³Nh´Nubh)”}”(hŒ:ref:`controls `”h]”j¹)”}”(hjœh]”hŒcontrols”…””}”(hjžh²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hjšubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”j¨Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj®Œcontrol”uh1hh³hÇh´K-hj’ubhŒ, and must support the ”…””}”(hj’h²hh³Nh´Nubh)”}”(hŒ :ref:`tuner`”h]”j¹)”}”(hjÀh]”hŒtuner”…””}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hj¾ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”jÌŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj®Œtuner”uh1hh³hÇh´K-hj’ubhŒ€ ioctls. Tuner ioctls are used for setting the ADC/DAC sampling rate (sampling frequency) and the possible radio frequency (RF).”…””}”(hj’h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K-hjh²hubhì)”}”(hX#The ``V4L2_TUNER_SDR`` tuner type is used for setting SDR device ADC/DAC frequency, and the ``V4L2_TUNER_RF`` tuner type is used for setting radio frequency. The tuner index of the RF tuner (if any) must always follow the SDR tuner index. Normally the SDR tuner is #0 and the RF tuner is #1.”h]”(hŒThe ”…””}”(hjèh²hh³Nh´Nubj)”}”(hŒ``V4L2_TUNER_SDR``”h]”hŒV4L2_TUNER_SDR”…””}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjèubhŒF tuner type is used for setting SDR device ADC/DAC frequency, and the ”…””}”(hjèh²hh³Nh´Nubj)”}”(hŒ``V4L2_TUNER_RF``”h]”hŒ V4L2_TUNER_RF”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjèubhŒ¶ tuner type is used for setting radio frequency. The tuner index of the RF tuner (if any) must always follow the SDR tuner index. Normally the SDR tuner is #0 and the RF tuner is #1.”…””}”(hjèh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K2hjh²hubhì)”}”(hŒ8The :ref:`VIDIOC_S_HW_FREQ_SEEK` ioctl is not supported.”h]”(hŒThe ”…””}”(hjh²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_S_HW_FREQ_SEEK`”h]”j¹)”}”(hj$h]”hŒVIDIOC_S_HW_FREQ_SEEK”…””}”(hj&h²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hj"ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”j0Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj®Œvidioc_s_hw_freq_seek”uh1hh³hÇh´K8hjubhŒ ioctl is not supported.”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K8hjh²hubeh}”(h]”Œsupplemental-functions”ah ]”h"]”Œsupplemental functions”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K+ubh×)”}”(hhh]”(hÜ)”}”(hŒData Format Negotiation”h]”hŒData Format Negotiation”…””}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjTh²hh³hÇh´K=ubhì)”}”(hX The SDR device uses the :ref:`format` ioctls to select the capture and output format. Both the sampling resolution and the data streaming format are bound to that selectable format. In addition to the basic :ref:`format` ioctls, the :ref:`VIDIOC_ENUM_FMT` ioctl must be supported as well.”h]”(hŒThe SDR device uses the ”…””}”(hjeh²hh³Nh´Nubh)”}”(hŒ :ref:`format`”h]”j¹)”}”(hjoh]”hŒformat”…””}”(hjqh²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hjmubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”j{Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj®Œformat”uh1hh³hÇh´K?hjeubhŒª ioctls to select the capture and output format. Both the sampling resolution and the data streaming format are bound to that selectable format. In addition to the basic ”…””}”(hjeh²hh³Nh´Nubh)”}”(hŒ :ref:`format`”h]”j¹)”}”(hj“h]”hŒformat”…””}”(hj•h²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hj‘ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”jŸŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj®Œformat”uh1hh³hÇh´K?hjeubhŒ ioctls, the ”…””}”(hjeh²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_ENUM_FMT`”h]”j¹)”}”(hj·h]”hŒVIDIOC_ENUM_FMT”…””}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hjµubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”jÃŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj®Œvidioc_enum_fmt”uh1hh³hÇh´K?hjeubhŒ! ioctl must be supported as well.”…””}”(hjeh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K?hjTh²hubhì)”}”(hXbTo use the :ref:`format` ioctls applications set the ``type`` field of a struct :c:type:`v4l2_format` to ``V4L2_BUF_TYPE_SDR_CAPTURE`` or ``V4L2_BUF_TYPE_SDR_OUTPUT`` and use the struct :c:type:`v4l2_sdr_format` ``sdr`` member of the ``fmt`` union as needed per the desired operation. Currently there are two fields, ``pixelformat`` and ``buffersize``, of struct :c:type:`v4l2_sdr_format` which are used. Content of the ``pixelformat`` is V4L2 FourCC code of the data format. The ``buffersize`` field is maximum buffer size in bytes required for data transfer, set by the driver in order to inform application.”h]”(hŒ To use the ”…””}”(hjßh²hh³Nh´Nubh)”}”(hŒ :ref:`format`”h]”j¹)”}”(hjéh]”hŒformat”…””}”(hjëh²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hjçubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”jõŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj®Œformat”uh1hh³hÇh´KFhjßubhŒ ioctls applications set 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 a struct ”…””}”(hjßh²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_format`”h]”j)”}”(hjh]”hŒ v4l2_format”…””}”(hj!h²hh³Nh´Nubah}”(h]”h ]”(jŒjŒc-type”eh"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”jŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jŸj£j®Œ v4l2_format”uh1hh³hÇh´KFhjßubhŒ to ”…””}”(hjßh²hh³Nh´Nubj)”}”(hŒ``V4L2_BUF_TYPE_SDR_CAPTURE``”h]”hŒV4L2_BUF_TYPE_SDR_CAPTURE”…””}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßubhŒ or ”…””}”(hjßh²hh³Nh´Nubj)”}”(hŒ``V4L2_BUF_TYPE_SDR_OUTPUT``”h]”hŒV4L2_BUF_TYPE_SDR_OUTPUT”…””}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßubhŒ and use the struct ”…””}”(hjßh²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_sdr_format`”h]”j)”}”(hjfh]”hŒv4l2_sdr_format”…””}”(hjhh²hh³Nh´Nubah}”(h]”h ]”(jŒjŒc-type”eh"]”h$]”h&]”uh1jhjdubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”jŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jŸj£j®Œv4l2_sdr_format”uh1hh³hÇh´KFhjßubhŒ ”…””}”(hjßh²hh³Nh´Nubj)”}”(hŒ``sdr``”h]”hŒsdr”…””}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßubhŒ member of the ”…””}”(hjßh²hh³Nh´Nubj)”}”(hŒ``fmt``”h]”hŒfmt”…””}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßubhŒL union as needed per the desired operation. Currently there are two fields, ”…””}”(hjßh²hh³Nh´Nubj)”}”(hŒ``pixelformat``”h]”hŒ pixelformat”…””}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßubhŒ and ”…””}”(hjßh²hh³Nh´Nubj)”}”(hŒ``buffersize``”h]”hŒ buffersize”…””}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßubhŒ , of struct ”…””}”(hjßh²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_sdr_format`”h]”j)”}”(hjÑh]”hŒv4l2_sdr_format”…””}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”(jŒjŒc-type”eh"]”h$]”h&]”uh1jhjÏubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”jŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jŸj£j®Œv4l2_sdr_format”uh1hh³hÇh´KFhjßubhŒ which are used. Content of the ”…””}”(hjßh²hh³Nh´Nubj)”}”(hŒ``pixelformat``”h]”hŒ pixelformat”…””}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßubhŒ- is V4L2 FourCC code of the data format. The ”…””}”(hjßh²hh³Nh´Nubj)”}”(hŒ``buffersize``”h]”hŒ buffersize”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjßubhŒt field is maximum buffer size in bytes required for data transfer, set by the driver in order to inform application.”…””}”(hjßh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KFhjTh²hubhŒindex”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”ŒV4L.v4l2_sdr_format (C type)”Œc.V4L.v4l2_sdr_format”hNt”auh1jhjTh²hh³Nh´NubhŒdesc”“”)”}”(hhh]”(hŒdesc_signature”“”)”}”(hŒv4l2_sdr_format”h]”hŒdesc_signature_line”“”)”}”(hŒtype v4l2_sdr_format”h]”(hŒdesc_sig_keyword”“”)”}”(hŒtype”h]”hŒtype”…””}”(hj@h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j>hj:h²hh³hÇh´KRubhŒdesc_sig_space”“”)”}”(hŒ ”h]”hŒ ”…””}”(hjQh²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1jOhj:h²hh³hÇh´KRubhŒ desc_name”“”)”}”(hŒv4l2_sdr_format”h]”hŒ desc_sig_name”“”)”}”(hj6h]”hŒv4l2_sdr_format”…””}”(hjhh²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jfhjbubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1j`hj:h²hh³hÇh´KRubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1j8Œsphinx_line_type”Œ declarator”hj4h²hh³hÇh´KRubah}”(h]”j+ah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1j2h³hÇh´KRhj/h²hubhŒ desc_content”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j’hj/h²hh³hÇh´KRubeh}”(h]”h ]”(jŒtype”eh"]”h$]”h&]”Œdomain”jŒobjtype”j Œdesctype”j Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1j-h²hhjTh³Nh´NubhŒtabular_col_spec”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œspec”Œ|p{4.4cm}|p{4.4cm}|p{8.5cm}|”uh1jªh³hÇh´KThjTh²hubhŒtable”“”)”}”(hhh]”(hÜ)”}”(hŒstruct v4l2_sdr_format”h]”hŒstruct v4l2_sdr_format”…””}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛh³hÇh´KVhj¹ubhŒtgroup”“”)”}”(hhh]”(hŒcolspec”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jÏhjÌubjÐ)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jÏhjÌubjÐ)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jÏhjÌubhŒtbody”“”)”}”(hhh]”(hŒrow”“”)”}”(hhh]”(hŒentry”“”)”}”(hhh]”hì)”}”(hŒ__u32”h]”hŒ__u32”…””}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K[hjûubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjöubjú)”}”(hhh]”hì)”}”(hŒ``pixelformat``”h]”j)”}”(hjh]”hŒ pixelformat”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K\hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjöubjú)”}”(hhh]”hì)”}”(hŒ±The data format or type of compression, set by the application. This is a little endian :ref:`four character code `. V4L2 defines SDR formats in :ref:`sdr-formats`.”h]”(hŒXThe data format or type of compression, set by the application. This is a little endian ”…””}”(hj5h²hh³Nh´Nubh)”}”(hŒ(:ref:`four character code `”h]”j¹)”}”(hj?h]”hŒfour character code”…””}”(hjAh²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hj=ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”jKŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj®Œ v4l2-fourcc”uh1hh³hÇh´K]hj5ubhŒ. V4L2 defines SDR formats in ”…””}”(hj5h²hh³Nh´Nubh)”}”(hŒ:ref:`sdr-formats`”h]”j¹)”}”(hjch]”hŒ sdr-formats”…””}”(hjeh²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hjaubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”joŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj®Œ sdr-formats”uh1hh³hÇh´K]hj5ubhŒ.”…””}”(hj5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K]hj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjöubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôhjñubjõ)”}”(hhh]”(jú)”}”(hhh]”hì)”}”(hŒ__u32”h]”hŒ__u32”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kahjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj—ubjú)”}”(hhh]”hì)”}”(hŒ``buffersize``”h]”j)”}”(hj¶h]”hŒ buffersize”…””}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kbhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj—ubjú)”}”(hhh]”hì)”}”(hŒDMaximum size in bytes required for data. Value is set by the driver.”h]”hŒDMaximum size in bytes required for data. Value is set by the driver.”…””}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KchjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôhjñubjõ)”}”(hhh]”(jú)”}”(hhh]”hì)”}”(hŒ__u8”h]”hŒ__u8”…””}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kehjñubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjîubjú)”}”(hhh]”hì)”}”(hŒ``reserved[24]``”h]”j)”}”(hj h]”hŒ reserved[24]”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kfhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjîubjú)”}”(hhh]”hì)”}”(hŒ[This array is reserved for future extensions. Drivers and applications must set it to zero.”h]”hŒ[This array is reserved for future extensions. Drivers and applications must set it to zero.”…””}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kghj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jôhjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jïhjÌubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jÊhj¹ubeh}”(h]”Œid1”ah ]”h"]”h$]”h&]”uh1j·hjTh²hh³Nh´Nubhì)”}”(hŒ„An SDR device may support :ref:`read/write ` and/or streaming (:ref:`memory mapping ` or :ref:`user pointer `) I/O.”h]”(hŒAn SDR device may support ”…””}”(hjYh²hh³Nh´Nubh)”}”(hŒ:ref:`read/write `”h]”j¹)”}”(hjch]”hŒ read/write”…””}”(hjeh²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hjaubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”joŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj®Œrw”uh1hh³hÇh´KkhjYubhŒ and/or streaming (”…””}”(hjYh²hh³Nh´Nubh)”}”(hŒ:ref:`memory mapping `”h]”j¹)”}”(hj‡h]”hŒmemory mapping”…””}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hj…ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”j“Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj®Œmmap”uh1hh³hÇh´KkhjYubhŒ or ”…””}”(hjYh²hh³Nh´Nubh)”}”(hŒ:ref:`user pointer `”h]”j¹)”}”(hj«h]”hŒ user pointer”…””}”(hj­h²hh³Nh´Nubah}”(h]”h ]”(jŒŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¸hj©ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j™Œ refdomain”j·Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj®Œuserp”uh1hh³hÇh´KkhjYubhŒ) I/O.”…””}”(hjYh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KkhjTh²hubeh}”(h]”Œdata-format-negotiation”ah ]”h"]”Œdata format negotiation”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K=ubeh}”(h]”(Œ$software-defined-radio-interface-sdr”hÕeh ]”h"]”(Œ&software defined radio interface (sdr)”Œsdr”eh$]”h&]”uh1hÖhhh²hh³hÇh´KŒexpect_referenced_by_name”}”jáhÊ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”jùŒ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”}”(jáhÕjàjÝj~j{jQjNjØjÕuŒ nametypes”}”(jáˆjà‰j~‰jQ‰j؉uh}”(hÕhØjÝhØj{j/jNjjÕjTj+j4jTj¹uŒ 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”“”}”jKs…”R”Œparse_messages”]”Œtransform_messages”]”hŒsystem_message”“”)”}”(hhh]”hì)”}”(hhh]”hŒ)Hyperlink target "sdr" is not referenced.”…””}”hjtsbah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjqubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hÇŒline”Kuh1joubaŒ transformer”NŒ include_log”]”Œ decoration”Nh²hub.