€•úbŒ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 K hhÄ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”‰Œ 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”…””}”(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‹Œ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”…””}”(hj"hž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_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.”…””}”(hjHhž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”…””}”(hjahžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhj^hž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 ”…””}”(hjohžhhŸNh Nubh)”}”(hŒ:ref:`controls `”h]”j–)”}”(hjyh]”hŒcontrols”…””}”(hj{hžhhŸNh Nubah}”(h]”h ]”(jxŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j•hjwubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”j…Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj‹Œcontrol”uh1hhŸh³h K,hjoubhŒ, and must support the ”…””}”(hjohžhhŸNh Nubh)”}”(hŒ :ref:`tuner`”h]”j–)”}”(hjh]”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,hjoubhŒ€ ioctls. Tuner ioctls are used for setting the ADC/DAC sampling rate (sampling frequency) and the possible radio frequency (RF).”…””}”(hjohžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h K,hj^hž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 K1hj^hžhubhØ)”}”(hŒ8The :ref:`VIDIOC_S_HW_FREQ_SEEK` ioctl is not supported.”h]”(hŒThe ”…””}”(hj÷hž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•hjÿubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”j Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj‹Œvidioc_s_hw_freq_seek”uh1hhŸh³h K7hj÷ubhŒ ioctl is not supported.”…””}”(hj÷hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h K7hj^hž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”…””}”(hj4hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhj1hžhhŸh³h KhjBubhŒª 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 ”…””}”(hjBhžhhŸNh Nubh)”}”(hŒ :ref:`format`”h]”j–)”}”(hjph]”hŒformat”…””}”(hjrhžhhŸNh Nubah}”(h]”h ]”(jxŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j•hjnubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”j|Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj‹Œformat”uh1hhŸh³h K>hjBubhŒ ioctls, the ”…””}”(hjBhž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>hjBubhŒ! ioctl must be supported as well.”…””}”(hjBhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h K>hj1hž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 KEhj¼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‹Œ v4l2_format”uh1hhŸh³h KEhj¼ubhŒ to ”…””}”(hj¼hžhhŸNh Nubhð)”}”(hŒ``V4L2_BUF_TYPE_SDR_CAPTURE``”h]”hŒV4L2_BUF_TYPE_SDR_CAPTURE”…””}”(hjhž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ð)”}”(hjCh]”hŒv4l2_sdr_format”…””}”(hjEhžhhŸNh Nubah}”(h]”h ]”(jxjyŒc-type”eh"]”h$]”h&]”uh1hïhjAubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”jyŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j‹Œv4l2_sdr_format”uh1hhŸh³h KEhj¼ubhŒ ”…””}”(hj¼hžhhŸNh Nubhð)”}”(hŒ``sdr``”h]”hŒsdr”…””}”(hjdhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhj¼ubhŒ member of the ”…””}”(hj¼hžhhŸNh Nubhð)”}”(hŒ``fmt``”h]”hŒfmt”…””}”(hjvhž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‹Œv4l2_sdr_format”uh1hhŸh³h KEhj¼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 KEhj1hžhubhŒindex”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œv4l2_sdr_format (C type)”Œc.v4l2_sdr_format”hNt”auh1jùhj1hž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”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jhjhžhhŸh³h KQubhŒdesc_sig_space”“”)”}”(hŒ ”h]”hŒ ”…””}”(hj.hžhhŸNh Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j,hjhžhhŸh³h KQubhŒ desc_name”“”)”}”(hŒv4l2_sdr_format”h]”hŒ desc_sig_name”“”)”}”(hjh]”hŒv4l2_sdr_format”…””}”(hjEhžhhŸNh Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jChj?ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”h±h²uh1j=hjhžhhŸh³h KQubeh}”(h]”h ]”h"]”h$]”h&]”h±h²Œ add_permalink”ˆuh1jŒsphinx_line_type”Œ declarator”hjhžhhŸh³h KQubah}”(h]”jah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jhŸh³h KQhj hžhubhŒ desc_content”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1johj hžhhŸh³h KQubeh}”(h]”h ]”(jyŒtype”eh"]”h$]”h&]”Œdomain”jyŒobjtype”j}Œdesctype”j}Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1j hžhhj1hŸ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 KShj1hž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 KUhj–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 KZhjØubah}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjÓubj×)”}”(hhh]”hØ)”}”(hŒ``pixelformat``”h]”hð)”}”(hjôh]”hŒ pixelformat”…””}”(hjöhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hïhjòubah}”(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 ”…””}”(hjhžhhŸNh Nubh)”}”(hŒ(:ref:`four character code `”h]”j–)”}”(hjh]”hŒfour character code”…””}”(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‹Œ v4l2-fourcc”uh1hhŸh³h K\hjubhŒ. V4L2 defines SDR formats in ”…””}”(hjhžhhŸNh Nubh)”}”(hŒ:ref:`sdr-formats`”h]”j–)”}”(hj@h]”hŒ sdr-formats”…””}”(hjBhžhhŸNh Nubah}”(h]”h ]”(jxŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j•hj>ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”jLŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj‹Œ sdr-formats”uh1hhŸh³h K\hjubhŒ.”…””}”(hjhž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”…””}”(hjzhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h K`hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjtubj×)”}”(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 KahjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjtubj×)”}”(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 Kbhj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÖhjtubeh}”(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 KdhjÎ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 Kehjå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 Kfhjubah}”(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”hj1hž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 ”…””}”(hj6hžhhŸNh Nubh)”}”(hŒ:ref:`read/write `”h]”j–)”}”(hj@h]”hŒ read/write”…””}”(hjBhžhhŸNh Nubah}”(h]”h ]”(jxŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j•hj>ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”jLŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj‹Œrw”uh1hhŸh³h Kjhj6ubhŒ and/or streaming (”…””}”(hj6hžhhŸNh Nubh)”}”(hŒ:ref:`memory mapping `”h]”j–)”}”(hjdh]”hŒmemory mapping”…””}”(hjfhžhhŸNh Nubah}”(h]”h ]”(jxŒstd”Œstd-ref”eh"]”h$]”h&]”uh1j•hjbubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j…Œ refdomain”jpŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj‹Œmmap”uh1hhŸh³h Kjhj6ubhŒ or ”…””}”(hj6hž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 Kjhj6ubhŒ) I/O.”…””}”(hj6hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1h×hŸh³h Kjhj1hžhubeh}”(h]”Œdata-format-negotiation”ah ]”h"]”Œdata format negotiation”ah$]”h&]”uh1hÂhhÄhžhhŸh³h K