162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci========
462306a36Sopenharmony_ciGlossary
562306a36Sopenharmony_ci========
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci.. note::
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci   The goal of this section is to standardize the terms used within the media
1062306a36Sopenharmony_ci   userspace API documentation. This is Work In Progress.
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci.. Please keep the glossary entries in alphabetical order
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci.. glossary::
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci    Bridge Driver
1762306a36Sopenharmony_ci	A :term:`Device Driver` that implements the main logic to talk with
1862306a36Sopenharmony_ci	media hardware.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci    CEC API
2162306a36Sopenharmony_ci	**Consumer Electronics Control API**
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	An API designed to receive and transmit data via an HDMI
2462306a36Sopenharmony_ci	CEC interface.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci	See :ref:`cec`.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci    Device Driver
2962306a36Sopenharmony_ci	Part of the Linux Kernel that implements support for a hardware
3062306a36Sopenharmony_ci	component.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci    Device Node
3362306a36Sopenharmony_ci	A character device node in the file system used to control and
3462306a36Sopenharmony_ci	transfer data in and out of a Kernel driver.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci    Digital TV API
3762306a36Sopenharmony_ci	**Previously known as DVB API**
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	An API designed to control a subset of the :term:`Media Hardware`
4062306a36Sopenharmony_ci	that implements	digital TV (e. g. DVB, ATSC, ISDB, etc).
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci	See :ref:`dvbapi`.
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci    DSP
4562306a36Sopenharmony_ci        **Digital Signal Processor**
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	A specialized :term:`Microprocessor`, with its architecture
4862306a36Sopenharmony_ci	optimized for the operational needs of digital signal processing.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci    FPGA
5162306a36Sopenharmony_ci	**Field-programmable Gate Array**
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	An :term:`IC` circuit designed to be configured by a customer or
5462306a36Sopenharmony_ci	a designer after manufacturing.
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci	See https://en.wikipedia.org/wiki/Field-programmable_gate_array.
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci    Hardware Component
5962306a36Sopenharmony_ci	A subset of the :term:`Media Hardware`. For example an :term:`I²C` or
6062306a36Sopenharmony_ci	:term:`SPI` device, or an :term:`IP Block` inside an
6162306a36Sopenharmony_ci	:term:`SoC` or :term:`FPGA`.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci    Hardware Peripheral
6462306a36Sopenharmony_ci	A group of :term:`hardware components <Hardware Component>` that
6562306a36Sopenharmony_ci	together make a larger user-facing functional peripheral. For
6662306a36Sopenharmony_ci	instance, the :term:`SoC` :term:`ISP` :term:`IP Block`
6762306a36Sopenharmony_ci	and the external camera sensors together make a camera hardware
6862306a36Sopenharmony_ci	peripheral.
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci	Also known as :term:`Peripheral`.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci    I²C
7362306a36Sopenharmony_ci	**Inter-Integrated Circuit**
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci	A  multi-master, multi-slave, packet switched, single-ended,
7662306a36Sopenharmony_ci	serial computer bus used to control some hardware components
7762306a36Sopenharmony_ci	like sub-device hardware components.
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci	See http://www.nxp.com/docs/en/user-guide/UM10204.pdf.
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci    IC
8262306a36Sopenharmony_ci	**Integrated circuit**
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci	A set of electronic circuits on one small flat piece of
8562306a36Sopenharmony_ci	semiconductor material, normally silicon.
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci	Also known as chip.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci    IP Block
9062306a36Sopenharmony_ci	**Intellectual property core**
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci	In electronic design a semiconductor intellectual property core,
9362306a36Sopenharmony_ci	is a reusable unit of logic, cell, or integrated circuit layout
9462306a36Sopenharmony_ci	design that is the intellectual property of one party.
9562306a36Sopenharmony_ci	IP Blocks may be licensed to another party or can be owned
9662306a36Sopenharmony_ci	and used by a single party alone.
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci	See https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core).
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci    ISP
10162306a36Sopenharmony_ci	**Image Signal Processor**
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci	A specialized processor that implements a set of algorithms for
10462306a36Sopenharmony_ci	processing image data. ISPs may implement algorithms for lens
10562306a36Sopenharmony_ci	shading correction, demosaicing, scaling and pixel format conversion
10662306a36Sopenharmony_ci	as well as produce statistics for the use of the control
10762306a36Sopenharmony_ci	algorithms (e.g. automatic exposure, white balance and focus).
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci    Media API
11062306a36Sopenharmony_ci	A set of userspace APIs used to control the media hardware. It is
11162306a36Sopenharmony_ci	composed by:
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci	  - :term:`CEC API`;
11462306a36Sopenharmony_ci	  - :term:`Digital TV API`;
11562306a36Sopenharmony_ci	  - :term:`MC API`;
11662306a36Sopenharmony_ci	  - :term:`RC API`; and
11762306a36Sopenharmony_ci	  - :term:`V4L2 API`.
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci	See Documentation/userspace-api/media/index.rst.
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci    MC API
12262306a36Sopenharmony_ci	**Media Controller API**
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci	An API designed to expose and control the relationships between
12562306a36Sopenharmony_ci	multimedia devices and sub-devices.
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci	See :ref:`media_controller`.
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci    MC-centric
13062306a36Sopenharmony_ci	:term:`V4L2 Hardware` device driver that requires :term:`MC API`.
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci	Such drivers have ``V4L2_CAP_IO_MC`` device_caps field set
13362306a36Sopenharmony_ci	(see :ref:`VIDIOC_QUERYCAP`).
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci	See :ref:`v4l2_hardware_control` for more details.
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci    Media Hardware
13862306a36Sopenharmony_ci	Subset of the hardware that is supported by the Linux Media API.
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci	This includes audio and video capture and playback hardware,
14162306a36Sopenharmony_ci	digital and analog TV, camera sensors, ISPs, remote controllers,
14262306a36Sopenharmony_ci	codecs, HDMI Consumer Electronics Control, HDMI capture, etc.
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci    Microprocessor
14562306a36Sopenharmony_ci	Electronic circuitry that carries out the instructions of a
14662306a36Sopenharmony_ci	computer program by performing the basic arithmetic, logical,
14762306a36Sopenharmony_ci	control and input/output (I/O) operations specified by the
14862306a36Sopenharmony_ci	instructions on a single integrated circuit.
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci    Peripheral
15162306a36Sopenharmony_ci	The same as :term:`Hardware Peripheral`.
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci    RC API
15462306a36Sopenharmony_ci	**Remote Controller API**
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci	An API designed to receive and transmit data from remote
15762306a36Sopenharmony_ci	controllers.
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ci	See :ref:`remote_controllers`.
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci    SMBus
16262306a36Sopenharmony_ci	A subset of I²C, which defines a stricter usage of the bus.
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ci    SPI
16562306a36Sopenharmony_ci	**Serial Peripheral Interface Bus**
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci	Synchronous serial communication interface specification used for
16862306a36Sopenharmony_ci	short distance communication, primarily in embedded systems.
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci    SoC
17162306a36Sopenharmony_ci	**System on a Chip**
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ci	An integrated circuit that integrates all components of a computer
17462306a36Sopenharmony_ci	or other electronic systems.
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci    V4L2 API
17762306a36Sopenharmony_ci	**V4L2 userspace API**
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ci	The userspace API defined in :ref:`v4l2spec`, which is used to
18062306a36Sopenharmony_ci	control a V4L2 hardware.
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ci    V4L2 Device Node
18362306a36Sopenharmony_ci	A :term:`Device Node` that is associated to a V4L driver.
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ci	The V4L2 device node naming is specified at :ref:`v4l2_device_naming`.
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci    V4L2 Hardware
18862306a36Sopenharmony_ci	Part of the media hardware which is supported by the :term:`V4L2 API`.
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ci    V4L2 Sub-device
19162306a36Sopenharmony_ci	V4L2 hardware components that aren't controlled by a
19262306a36Sopenharmony_ci	:term:`Bridge Driver`. See :ref:`subdev`.
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ci    Video-node-centric
19562306a36Sopenharmony_ci	V4L2 device driver that doesn't require a media controller to be used.
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_ci	Such drivers have the ``V4L2_CAP_IO_MC`` device_caps field unset
19862306a36Sopenharmony_ci	(see :ref:`VIDIOC_QUERYCAP`).
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci    V4L2 Sub-device API
20162306a36Sopenharmony_ci	Part of the :term:`V4L2 API` which control
20262306a36Sopenharmony_ci	:term:`V4L2 sub-devices <V4L2 Sub-device>`, like sensors,
20362306a36Sopenharmony_ci	HDMI receivers, scalers, deinterlacers.
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ci	See :ref:`v4l2_hardware_control` for more details.
206