This is an experimental interface and may change in the future.
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.
SDR devices are accessed through character device special files named
with major number 81 and dynamically allocated minor numbers 0 to 255.
Devices supporting the SDR receiver interface set the
V4L2_CAP_TUNER flag in the
capabilities field of struct v4l2_capability
returned by the
VIDIOC_QUERYCAP ioctl. That flag means the device has an
Analog to Digital Converter (ADC), which is a mandatory element for the SDR receiver.
At least one of the read/write, streaming or asynchronous I/O methods must
V4L2_TUNER_ADC tuner type is used for ADC tuners, and
V4L2_TUNER_RF tuner type is used for RF tuners. The
tuner index of the RF tuner (if any) must always follow the ADC tuner index.
Normally the ADC tuner is #0 and the RF tuner is #1.
VIDIOC_S_HW_FREQ_SEEK ioctl is not supported.
The SDR capture device uses the format ioctls to
select the capture format. Both the sampling resolution and the data streaming
format are bound to that selectable format. In addition to the basic
format ioctls, the
must be supported as well.
To use the format ioctls applications set the
type field of a struct v4l2_format to
V4L2_BUF_TYPE_SDR_CAPTURE and use the struct v4l2_sdr_format
sdr member of the
union as needed per the desired operation.
Currently there is two fields,
buffersize, of struct struct 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.
Table 4.18. struct v4l2_sdr_format
|__u32||The data format or type of compression, set by the application. This is a little endian four character code. V4L2 defines SDR formats in the section called “SDR Formats”.|
|__u32||Maximum size in bytes required for data. Value is set by the driver.|
|__u8||This array is reserved for future extensions. Drivers and applications must set it to zero.|