18c2ecf20Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci========
48c2ecf20Sopenharmony_ciGlossary
58c2ecf20Sopenharmony_ci========
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci.. note::
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci   The goal of this section is to standardize the terms used within the media
108c2ecf20Sopenharmony_ci   userspace API documentation. This is Work In Progress.
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci.. Please keep the glossary entries in alphabetical order
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci.. glossary::
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci    Bridge Driver
178c2ecf20Sopenharmony_ci	A :term:`Device Driver` that implements the main logic to talk with
188c2ecf20Sopenharmony_ci	media hardware.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci    CEC API
218c2ecf20Sopenharmony_ci	**Consumer Electronics Control API**
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci	An API designed to receive and transmit data via an HDMI
248c2ecf20Sopenharmony_ci	CEC interface.
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci	See :ref:`cec`.
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci    Device Driver
298c2ecf20Sopenharmony_ci	Part of the Linux Kernel that implements support for a hardware
308c2ecf20Sopenharmony_ci	component.
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci    Device Node
338c2ecf20Sopenharmony_ci	A character device node in the file system used to control and
348c2ecf20Sopenharmony_ci	transfer data in and out of a Kernel driver.
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci    Digital TV API
378c2ecf20Sopenharmony_ci	**Previously known as DVB API**
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci	An API designed to control a subset of the :term:`Media Hardware`
408c2ecf20Sopenharmony_ci	that implements	digital TV (e. g. DVB, ATSC, ISDB, etc).
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci	See :ref:`dvbapi`.
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci    DSP
458c2ecf20Sopenharmony_ci        **Digital Signal Processor**
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci	A specialized :term:`Microprocessor`, with its architecture
488c2ecf20Sopenharmony_ci	optimized for the operational needs of digital signal processing.
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci    FPGA
518c2ecf20Sopenharmony_ci	**Field-programmable Gate Array**
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci	An :term:`IC` circuit designed to be configured by a customer or
548c2ecf20Sopenharmony_ci	a designer after manufacturing.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci	See https://en.wikipedia.org/wiki/Field-programmable_gate_array.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci    Hardware Component
598c2ecf20Sopenharmony_ci	A subset of the :term:`Media Hardware`. For example an :term:`I²C` or
608c2ecf20Sopenharmony_ci	:term:`SPI` device, or an :term:`IP Block` inside an
618c2ecf20Sopenharmony_ci	:term:`SoC` or :term:`FPGA`.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci    Hardware Peripheral
648c2ecf20Sopenharmony_ci	A group of :term:`hardware components <Hardware Component>` that
658c2ecf20Sopenharmony_ci	together make a larger user-facing functional peripheral. For
668c2ecf20Sopenharmony_ci	instance, the :term:`SoC` :term:`ISP` :term:`IP Block`
678c2ecf20Sopenharmony_ci	and the external camera sensors together make a camera hardware
688c2ecf20Sopenharmony_ci	peripheral.
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci	Also known as :term:`Peripheral`.
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci    I²C
738c2ecf20Sopenharmony_ci	**Inter-Integrated Circuit**
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci	A  multi-master, multi-slave, packet switched, single-ended,
768c2ecf20Sopenharmony_ci	serial computer bus used to control some hardware components
778c2ecf20Sopenharmony_ci	like sub-device hardware components.
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci	See http://www.nxp.com/docs/en/user-guide/UM10204.pdf.
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci    IC
828c2ecf20Sopenharmony_ci	**Integrated circuit**
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci	A set of electronic circuits on one small flat piece of
858c2ecf20Sopenharmony_ci	semiconductor material, normally silicon.
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci	Also known as chip.
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ci    IP Block
908c2ecf20Sopenharmony_ci	**Intellectual property core**
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci	In electronic design a semiconductor intellectual property core,
938c2ecf20Sopenharmony_ci	is a reusable unit of logic, cell, or integrated circuit layout
948c2ecf20Sopenharmony_ci	design that is the intellectual property of one party.
958c2ecf20Sopenharmony_ci	IP Blocks may be licensed to another party or can be owned
968c2ecf20Sopenharmony_ci	and used by a single party alone.
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci	See https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core).
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci    ISP
1018c2ecf20Sopenharmony_ci	**Image Signal Processor**
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci	A specialized processor that implements a set of algorithms for
1048c2ecf20Sopenharmony_ci	processing image data. ISPs may implement algorithms for lens
1058c2ecf20Sopenharmony_ci	shading correction, demosaicing, scaling and pixel format conversion
1068c2ecf20Sopenharmony_ci	as well as produce statistics for the use of the control
1078c2ecf20Sopenharmony_ci	algorithms (e.g. automatic exposure, white balance and focus).
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci    Media API
1108c2ecf20Sopenharmony_ci	A set of userspace APIs used to control the media hardware. It is
1118c2ecf20Sopenharmony_ci	composed by:
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci	  - :term:`CEC API`;
1148c2ecf20Sopenharmony_ci	  - :term:`Digital TV API`;
1158c2ecf20Sopenharmony_ci	  - :term:`MC API`;
1168c2ecf20Sopenharmony_ci	  - :term:`RC API`; and
1178c2ecf20Sopenharmony_ci	  - :term:`V4L2 API`.
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci	See :doc:`index`.
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci    MC API
1228c2ecf20Sopenharmony_ci	**Media Controller API**
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci	An API designed to expose and control the relationships between
1258c2ecf20Sopenharmony_ci	multimedia devices and sub-devices.
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ci	See :ref:`media_controller`.
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci    MC-centric
1308c2ecf20Sopenharmony_ci	:term:`V4L2 Hardware` device driver that requires :term:`MC API`.
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci	Such drivers have ``V4L2_CAP_IO_MC`` device_caps field set
1338c2ecf20Sopenharmony_ci	(see :ref:`VIDIOC_QUERYCAP`).
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ci	See :ref:`v4l2_hardware_control` for more details.
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ci    Media Hardware
1388c2ecf20Sopenharmony_ci	Subset of the hardware that is supported by the Linux Media API.
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ci	This includes audio and video capture and playback hardware,
1418c2ecf20Sopenharmony_ci	digital and analog TV, camera sensors, ISPs, remote controllers,
1428c2ecf20Sopenharmony_ci	codecs, HDMI Consumer Electronics Control, HDMI capture, etc.
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ci    Microprocessor
1458c2ecf20Sopenharmony_ci	Electronic circuitry that carries out the instructions of a
1468c2ecf20Sopenharmony_ci	computer program by performing the basic arithmetic, logical,
1478c2ecf20Sopenharmony_ci	control and input/output (I/O) operations specified by the
1488c2ecf20Sopenharmony_ci	instructions on a single integrated circuit.
1498c2ecf20Sopenharmony_ci
1508c2ecf20Sopenharmony_ci    Peripheral
1518c2ecf20Sopenharmony_ci	The same as :term:`Hardware Peripheral`.
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ci    RC API
1548c2ecf20Sopenharmony_ci	**Remote Controller API**
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci	An API designed to receive and transmit data from remote
1578c2ecf20Sopenharmony_ci	controllers.
1588c2ecf20Sopenharmony_ci
1598c2ecf20Sopenharmony_ci	See :ref:`remote_controllers`.
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ci    SMBus
1628c2ecf20Sopenharmony_ci	A subset of I²C, which defines a stricter usage of the bus.
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ci    SPI
1658c2ecf20Sopenharmony_ci	**Serial Peripheral Interface Bus**
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci	Synchronous serial communication interface specification used for
1688c2ecf20Sopenharmony_ci	short distance communication, primarily in embedded systems.
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_ci    SoC
1718c2ecf20Sopenharmony_ci	**System on a Chip**
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ci	An integrated circuit that integrates all components of a computer
1748c2ecf20Sopenharmony_ci	or other electronic systems.
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_ci    V4L2 API
1778c2ecf20Sopenharmony_ci	**V4L2 userspace API**
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ci	The userspace API defined in :ref:`v4l2spec`, which is used to
1808c2ecf20Sopenharmony_ci	control a V4L2 hardware.
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci    V4L2 Device Node
1838c2ecf20Sopenharmony_ci	A :term:`Device Node` that is associated to a V4L driver.
1848c2ecf20Sopenharmony_ci
1858c2ecf20Sopenharmony_ci	The V4L2 device node naming is specified at :ref:`v4l2_device_naming`.
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_ci    V4L2 Hardware
1888c2ecf20Sopenharmony_ci	Part of the media hardware which is supported by the :term:`V4L2 API`.
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ci    V4L2 Sub-device
1918c2ecf20Sopenharmony_ci	V4L2 hardware components that aren't controlled by a
1928c2ecf20Sopenharmony_ci	:term:`Bridge Driver`. See :ref:`subdev`.
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_ci    Video-node-centric
1958c2ecf20Sopenharmony_ci	V4L2 device driver that doesn't require a media controller to be used.
1968c2ecf20Sopenharmony_ci
1978c2ecf20Sopenharmony_ci	Such drivers have the ``V4L2_CAP_IO_MC`` device_caps field unset
1988c2ecf20Sopenharmony_ci	(see :ref:`VIDIOC_QUERYCAP`).
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ci    V4L2 Sub-device API
2018c2ecf20Sopenharmony_ci	Part of the :term:`V4L2 API` which control
2028c2ecf20Sopenharmony_ci	:term:`V4L2 sub-devices <V4L2 Sub-device>`, like sensors,
2038c2ecf20Sopenharmony_ci	HDMI receivers, scalers, deinterlacers.
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ci	See :ref:`v4l2_hardware_control` for more details.
206