€•ŸcŒ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Œ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”…””}”(hhñhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhhçubhŒ to ”…””}”(hhçhžhhŸNh Nubhð)”}”(hŒ``/dev/swradio255``”h]”hŒ/dev/swradio255”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhhç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”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhjhž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 Nubhð)”}”(hŒ``V4L2_CAP_SDR_CAPTURE``”h]”hŒV4L2_CAP_SDR_CAPTURE”…””}”(hj4hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhj,ubhŒ and ”…””}”(hj,hžhhŸNh Nubhð)”}”(hŒ``V4L2_CAP_TUNER``”h]”hŒV4L2_CAP_TUNER”…””}”(hjFhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhj,ubhŒ flag in the ”…””}”(hj,hžhhŸNh Nubhð)”}”(hŒ``capabilities``”h]”hŒ capabilities”…””}”(hjXhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhj,ubhŒ field of struct ”…””}”(hj,hžhhŸNh Nubh)”}”(hŒ:c:type:`v4l2_capability`”h]”hð)”}”(hjlh]”hŒv4l2_capability”…””}”(hjnhžhhŸNh Nubah}”(h]”h ]”(Œxref”Œc”Œc-type”eh"]”h$]”h&]”uh1hïhjjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œuserspace-api/media/v4l/dev-sdr”Œ refdomain”jyŒ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 ]”(jxŒ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 Khjhž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 Nubhð)”}”(hŒ``V4L2_CAP_SDR_OUTPUT``”h]”hŒV4L2_CAP_SDR_OUTPUT”…””}”(hjÔhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjÌubhŒ and ”…””}”(hjÌhžhhŸNh Nubhð)”}”(hŒ``V4L2_CAP_MODULATOR``”h]”hŒV4L2_CAP_MODULATOR”…””}”(hjæhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjÌubhŒ flag in the ”…””}”(hjÌhžhhŸNh Nubhð)”}”(hŒ``capabilities``”h]”hŒ capabilities”…””}”(hjøhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjÌubhŒ field of struct ”…””}”(hjÌhžhhŸNh Nubh)”}”(hŒ:c:type:`v4l2_capability`”h]”hð)”}”(hj h]”hŒv4l2_capability”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”(jxjyŒc-type”eh"]”h$]”h&]”uh1hïhj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”jyŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j‹jjšŒv4l2_capability”uh1hhŸh³h KhjÌubhŒ returned by the ”…””}”(hjÌhžhhŸNh Nubh)”}”(hŒ:ref:`VIDIOC_QUERYCAP`”h]”j¥)”}”(hj/h]”hŒVIDIOC_QUERYCAP”…””}”(hj1hžhhŸNh Nubah}”(h]”h ]”(jxŒ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 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 Khjhž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.”…””}”(hjWhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h K&hjhž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”…””}”(hjphžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhjmhž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 ]”(jxŒ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 ]”(jxŒ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-hjmhž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 Nubhð)”}”(hŒ``V4L2_TUNER_SDR``”h]”hŒV4L2_TUNER_SDR”…””}”(hjÜhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjÔubhŒF tuner type is used for setting SDR device ADC/DAC frequency, and the ”…””}”(hjÔhžhhŸNh Nubhð)”}”(hŒ``V4L2_TUNER_RF``”h]”hŒ V4L2_TUNER_RF”…””}”(hjîhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjÔ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 K2hjmhž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¥)”}”(hjh]”hŒVIDIOC_S_HW_FREQ_SEEK”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”(jxŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¤hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”jŒ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 K8hjmhž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”…””}”(hjChžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhj@hž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 ”…””}”(hjQhžhhŸNh Nubh)”}”(hŒ :ref:`format`”h]”j¥)”}”(hj[h]”hŒformat”…””}”(hj]hžhhŸNh Nubah}”(h]”h ]”(jxŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¤hjYubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”jgŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆjšŒformat”uh1hhŸh³h K?hjQubhŒª 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 ”…””}”(hjQhžhhŸNh Nubh)”}”(hŒ :ref:`format`”h]”j¥)”}”(hjh]”hŒformat”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”(jxŒ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?hjQubhŒ ioctls, the ”…””}”(hjQhžhhŸNh Nubh)”}”(hŒ:ref:`VIDIOC_ENUM_FMT`”h]”j¥)”}”(hj£h]”hŒVIDIOC_ENUM_FMT”…””}”(hj¥hžhhŸNh Nubah}”(h]”h ]”(jxŒ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?hjQubhŒ! ioctl must be supported as well.”…””}”(hjQhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h K?hj@hž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 ]”(jxŒ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 Nubhð)”}”(hŒ``type``”h]”hŒtype”…””}”(hj÷hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjËubhŒ field of a struct ”…””}”(hjËhžhhŸNh Nubh)”}”(hŒ:c:type:`v4l2_format`”h]”hð)”}”(hj h]”hŒ v4l2_format”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”(jxjyŒc-type”eh"]”h$]”h&]”uh1hïhj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”jyŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j‹jjšŒ v4l2_format”uh1hhŸh³h KFhjËubhŒ to ”…””}”(hjËhžhhŸNh Nubhð)”}”(hŒ``V4L2_BUF_TYPE_SDR_CAPTURE``”h]”hŒV4L2_BUF_TYPE_SDR_CAPTURE”…””}”(hj,hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjËubhŒ or ”…””}”(hjËhžhhŸNh Nubhð)”}”(hŒ``V4L2_BUF_TYPE_SDR_OUTPUT``”h]”hŒV4L2_BUF_TYPE_SDR_OUTPUT”…””}”(hj>hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjËubhŒ and use the struct ”…””}”(hjËhžhhŸNh Nubh)”}”(hŒ:c:type:`v4l2_sdr_format`”h]”hð)”}”(hjRh]”hŒv4l2_sdr_format”…””}”(hjThžhhŸNh Nubah}”(h]”h ]”(jxjyŒc-type”eh"]”h$]”h&]”uh1hïhjPubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”jyŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j‹jjšŒv4l2_sdr_format”uh1hhŸh³h KFhjËubhŒ ”…””}”(hjËhžhhŸNh Nubhð)”}”(hŒ``sdr``”h]”hŒsdr”…””}”(hjshžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjËubhŒ member of the ”…””}”(hjËhžhhŸNh Nubhð)”}”(hŒ``fmt``”h]”hŒfmt”…””}”(hj…hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjËubhŒL union as needed per the desired operation. Currently there are two fields, ”…””}”(hjËhžhhŸNh Nubhð)”}”(hŒ``pixelformat``”h]”hŒ pixelformat”…””}”(hj—hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjËubhŒ and ”…””}”(hjËhžhhŸNh Nubhð)”}”(hŒ``buffersize``”h]”hŒ buffersize”…””}”(hj©hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjËubhŒ , of struct ”…””}”(hjËhžhhŸNh Nubh)”}”(hŒ:c:type:`v4l2_sdr_format`”h]”hð)”}”(hj½h]”hŒv4l2_sdr_format”…””}”(hj¿hžhhŸNh Nubah}”(h]”h ]”(jxjyŒc-type”eh"]”h$]”h&]”uh1hïhj»ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”jyŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j‹jjšŒv4l2_sdr_format”uh1hhŸh³h KFhjËubhŒ which are used. Content of the ”…””}”(hjËhžhhŸNh Nubhð)”}”(hŒ``pixelformat``”h]”hŒ pixelformat”…””}”(hjÞhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjËubhŒ- is V4L2 FourCC code of the data format. The ”…””}”(hjËhžhhŸNh Nubhð)”}”(hŒ``buffersize``”h]”hŒ buffersize”…””}”(hjðhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjË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 KFhj@hžhubhŒindex”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”ŒV4L.v4l2_sdr_format (C type)”Œc.V4L.v4l2_sdr_format”hNt”auh1jhj@hž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Œ ”…””}”(hj=hžhhŸNh Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j;hj&hžhhŸh³h KRubhŒ desc_name”“”)”}”(hŒv4l2_sdr_format”h]”hŒ desc_sig_name”“”)”}”(hj"h]”hŒv4l2_sdr_format”…””}”(hjThžhhŸNh Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jRhjNubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”h±h²uh1jLhj&hžhhŸh³h KRubeh}”(h]”h ]”h"]”h$]”h&]”h±h²Œ add_permalink”ˆuh1j$Œsphinx_line_type”Œ declarator”hj hžhhŸh³h KRubah}”(h]”jah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jhŸh³h KRhjhžhubhŒ desc_content”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1j~hjhžhhŸh³h KRubeh}”(h]”h ]”(jyŒtype”eh"]”h$]”h&]”Œdomain”jyŒobjtype”jŒŒdesctype”jŒŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jhžhhj@hŸ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 KThj@hž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]”hð)”}”(hjh]”hŒ pixelformat”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjubah}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h K\hjþubah}”(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 ”…””}”(hj!hžhhŸNh Nubh)”}”(hŒ(:ref:`four character code `”h]”j¥)”}”(hj+h]”hŒfour character code”…””}”(hj-hžhhŸNh Nubah}”(h]”h ]”(jxŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¤hj)ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”j7Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjšŒ v4l2-fourcc”uh1hhŸh³h K]hj!ubhŒ. V4L2 defines SDR formats in ”…””}”(hj!hžhhŸNh Nubh)”}”(hŒ:ref:`sdr-formats`”h]”j¥)”}”(hjOh]”hŒ sdr-formats”…””}”(hjQhžhhŸNh Nubah}”(h]”h ]”(jxŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¤hjMubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”j[Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆjšŒ sdr-formats”uh1hhŸh³h K]hj!ubhŒ.”…””}”(hj!hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h K]hjubah}”(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”…””}”(hj‰hž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]”hð)”}”(hj¢h]”hŒ buffersize”…””}”(hj¤hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h Kbhjubah}”(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]”hð)”}”(hjùh]”hŒ reserved[24]”…””}”(hjûhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h Kfhjôubah}”(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.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h Kghjubah}”(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£hj@hž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 ”…””}”(hjEhžhhŸNh Nubh)”}”(hŒ:ref:`read/write `”h]”j¥)”}”(hjOh]”hŒ read/write”…””}”(hjQhžhhŸNh Nubah}”(h]”h ]”(jxŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¤hjMubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”j[Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjšŒrw”uh1hhŸh³h KkhjEubhŒ and/or streaming (”…””}”(hjEhžhhŸNh Nubh)”}”(hŒ:ref:`memory mapping `”h]”j¥)”}”(hjsh]”hŒmemory mapping”…””}”(hjuhžhhŸNh Nubah}”(h]”h ]”(jxŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j¤hjqubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”jŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjšŒmmap”uh1hhŸh³h KkhjEubhŒ or ”…””}”(hjEhžhhŸNh Nubh)”}”(hŒ:ref:`user pointer `”h]”j¥)”}”(hj—h]”hŒ user pointer”…””}”(hj™hžhhŸNh Nubah}”(h]”h ]”(jxŒ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 KkhjEubhŒ) I/O.”…””}”(hjEhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h Kkhj@hž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Éjjjgj=j:jÄjÁuŒ nametypes”}”(j͈j̉jj‰j=‰jĉuh}”(hÁhÄjÉhÄjgjj:jmjÁj@jj j@j¥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.”…””}”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.