blob: 49f5cb5ed8258f7267fc2d3bea528864e2fce2a0 [file] [log] [blame]
Mauro Carvalho Chehab60c28202016-07-08 11:40:06 -03001.. -*- coding: utf-8; mode: rst -*-
2
3.. include:: <isonum.txt>
4
5##############################
6Linux Media Infrastructure API
7##############################
8
9**Copyright** |copy| 2009-2016 : LinuxTV Developers
10
11Permission is granted to copy, distribute and/or modify this document
12under the terms of the GNU Free Documentation License, Version 1.1 or
13any later version published by the Free Software Foundation. A copy of
14the license is included in the chapter entitled "GNU Free Documentation
15License".
16
17
18============
19Introduction
20============
21
22This document covers the Linux Kernel to Userspace API's used by video
23and radio streaming devices, including video cameras, analog and digital
24TV receiver cards, AM/FM receiver cards, Software Defined Radio (SDR),
25streaming capture and output devices, codec devices and remote controllers.
26
27A typical media device hardware is shown at
28:ref:`typical_media_device`.
29
30
31.. _typical_media_device:
32
33.. figure:: media_api_files/typical_media_device.*
34 :alt: typical_media_device.svg
35 :align: center
36
37 Typical Media Device
38
39The media infrastructure API was designed to control such devices. It is
Markus Heisere2460b12016-07-08 20:55:42 +020040divided into five parts.
Mauro Carvalho Chehab60c28202016-07-08 11:40:06 -030041
Markus Heisere2460b12016-07-08 20:55:42 +020042The :ref:`first part <v4l2spec>` covers radio, video capture and output,
Mauro Carvalho Chehab60c28202016-07-08 11:40:06 -030043cameras, analog TV devices and codecs.
44
Markus Heisere2460b12016-07-08 20:55:42 +020045The :ref:`second part <dvbapi>` covers the API used for digital TV and
Mauro Carvalho Chehab60c28202016-07-08 11:40:06 -030046Internet reception via one of the several digital tv standards. While it
47is called as DVB API, in fact it covers several different video
48standards including DVB-T/T2, DVB-S/S2, DVB-C, ATSC, ISDB-T, ISDB-S,
49DTMB, etc. The complete list of supported standards can be found at
50:ref:`fe-delivery-system-t`.
51
Markus Heisere2460b12016-07-08 20:55:42 +020052The :ref:`third part <remote_controllers>` covers the Remote Controller API.
Mauro Carvalho Chehab60c28202016-07-08 11:40:06 -030053
Markus Heisere2460b12016-07-08 20:55:42 +020054The :ref:`fourth part <media_controller>` covers the Media Controller API.
55
56The :ref:`fifth part <cec>` covers the CEC (Consumer Electronics Control) API.
Mauro Carvalho Chehab60c28202016-07-08 11:40:06 -030057
58It should also be noted that a media device may also have audio
59components, like mixers, PCM capture, PCM playback, etc, which are
60controlled via ALSA API.
61
62For additional information and for the latest development code, see:
63`https://linuxtv.org <https://linuxtv.org>`__.
64
65For discussing improvements, reporting troubles, sending new drivers,
66etc, please mail to:
67`Linux Media Mailing List (LMML). <http://vger.kernel.org/vger-lists.html#linux-media>`__.
68
69
70.. toctree::
71 :maxdepth: 1
72
73 uapi/v4l/v4l2
74 uapi/dvb/dvbapi
75 uapi/rc/remote_controllers
76 uapi/mediactl/media-controller
Markus Heisere2460b12016-07-08 20:55:42 +020077 uapi/cec/cec-api
Mauro Carvalho Chehab60c28202016-07-08 11:40:06 -030078 uapi/gen-errors
79 uapi/fdl-appendix
80
81.. only:: html
82
83 Retrieval
84 =========
85
86 * :ref:`genindex`