^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Glossary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) The goal of this section is to standardize the terms used within the media
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) userspace API documentation. This is Work In Progress.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) .. Please keep the glossary entries in alphabetical order
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) .. glossary::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) Bridge Driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) A :term:`Device Driver` that implements the main logic to talk with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) media hardware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) CEC API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) **Consumer Electronics Control API**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) An API designed to receive and transmit data via an HDMI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) CEC interface.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) See :ref:`cec`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) Device Driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) Part of the Linux Kernel that implements support for a hardware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) component.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) Device Node
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) A character device node in the file system used to control and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) transfer data in and out of a Kernel driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) Digital TV API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) **Previously known as DVB API**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) An API designed to control a subset of the :term:`Media Hardware`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) that implements digital TV (e. g. DVB, ATSC, ISDB, etc).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) See :ref:`dvbapi`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) DSP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) **Digital Signal Processor**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) A specialized :term:`Microprocessor`, with its architecture
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) optimized for the operational needs of digital signal processing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) FPGA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) **Field-programmable Gate Array**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) An :term:`IC` circuit designed to be configured by a customer or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) a designer after manufacturing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) See https://en.wikipedia.org/wiki/Field-programmable_gate_array.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) Hardware Component
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) A subset of the :term:`Media Hardware`. For example an :term:`I²C` or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) :term:`SPI` device, or an :term:`IP Block` inside an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) :term:`SoC` or :term:`FPGA`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) Hardware Peripheral
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) A group of :term:`hardware components <Hardware Component>` that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) together make a larger user-facing functional peripheral. For
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) instance, the :term:`SoC` :term:`ISP` :term:`IP Block`
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) and the external camera sensors together make a camera hardware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) peripheral.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) Also known as :term:`Peripheral`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) I²C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) **Inter-Integrated Circuit**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) A multi-master, multi-slave, packet switched, single-ended,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) serial computer bus used to control some hardware components
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) like sub-device hardware components.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) See http://www.nxp.com/docs/en/user-guide/UM10204.pdf.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) IC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) **Integrated circuit**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) A set of electronic circuits on one small flat piece of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) semiconductor material, normally silicon.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) Also known as chip.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) IP Block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) **Intellectual property core**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) In electronic design a semiconductor intellectual property core,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) is a reusable unit of logic, cell, or integrated circuit layout
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) design that is the intellectual property of one party.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) IP Blocks may be licensed to another party or can be owned
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) and used by a single party alone.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) See https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) ISP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) **Image Signal Processor**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) A specialized processor that implements a set of algorithms for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) processing image data. ISPs may implement algorithms for lens
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) shading correction, demosaicing, scaling and pixel format conversion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) as well as produce statistics for the use of the control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) algorithms (e.g. automatic exposure, white balance and focus).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) Media API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) A set of userspace APIs used to control the media hardware. It is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) composed by:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) - :term:`CEC API`;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) - :term:`Digital TV API`;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) - :term:`MC API`;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) - :term:`RC API`; and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) - :term:`V4L2 API`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) See :doc:`index`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) MC API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) **Media Controller API**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) An API designed to expose and control the relationships between
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) multimedia devices and sub-devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) See :ref:`media_controller`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) MC-centric
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) :term:`V4L2 Hardware` device driver that requires :term:`MC API`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) Such drivers have ``V4L2_CAP_IO_MC`` device_caps field set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) (see :ref:`VIDIOC_QUERYCAP`).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) See :ref:`v4l2_hardware_control` for more details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) Media Hardware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) Subset of the hardware that is supported by the Linux Media API.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) This includes audio and video capture and playback hardware,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) digital and analog TV, camera sensors, ISPs, remote controllers,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) codecs, HDMI Consumer Electronics Control, HDMI capture, etc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) Microprocessor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) Electronic circuitry that carries out the instructions of a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) computer program by performing the basic arithmetic, logical,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) control and input/output (I/O) operations specified by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) instructions on a single integrated circuit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) Peripheral
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) The same as :term:`Hardware Peripheral`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) RC API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) **Remote Controller API**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) An API designed to receive and transmit data from remote
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) controllers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) See :ref:`remote_controllers`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) SMBus
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) A subset of I²C, which defines a stricter usage of the bus.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) SPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) **Serial Peripheral Interface Bus**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) Synchronous serial communication interface specification used for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) short distance communication, primarily in embedded systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) SoC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) **System on a Chip**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) An integrated circuit that integrates all components of a computer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) or other electronic systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) V4L2 API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) **V4L2 userspace API**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) The userspace API defined in :ref:`v4l2spec`, which is used to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) control a V4L2 hardware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) V4L2 Device Node
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) A :term:`Device Node` that is associated to a V4L driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) The V4L2 device node naming is specified at :ref:`v4l2_device_naming`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) V4L2 Hardware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) Part of the media hardware which is supported by the :term:`V4L2 API`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) V4L2 Sub-device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) V4L2 hardware components that aren't controlled by a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) :term:`Bridge Driver`. See :ref:`subdev`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) Video-node-centric
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) V4L2 device driver that doesn't require a media controller to be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) Such drivers have the ``V4L2_CAP_IO_MC`` device_caps field unset
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) (see :ref:`VIDIOC_QUERYCAP`).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) V4L2 Sub-device API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) Part of the :term:`V4L2 API` which control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) :term:`V4L2 sub-devices <V4L2 Sub-device>`, like sensors,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) HDMI receivers, scalers, deinterlacers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) See :ref:`v4l2_hardware_control` for more details.