1*54f38fcaSMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0 2*54f38fcaSMauro Carvalho Chehab 3*54f38fcaSMauro Carvalho Chehab============ 4*54f38fcaSMauro Carvalho ChehabIntroduction 5*54f38fcaSMauro Carvalho Chehab============ 6*54f38fcaSMauro Carvalho Chehab 7*54f38fcaSMauro Carvalho ChehabThis document covers the Linux Kernel to Userspace API's used by video 8*54f38fcaSMauro Carvalho Chehaband radio streaming devices, including video cameras, analog and digital 9*54f38fcaSMauro Carvalho ChehabTV receiver cards, AM/FM receiver cards, Software Defined Radio (SDR), 10*54f38fcaSMauro Carvalho Chehabstreaming capture and output devices, codec devices and remote controllers. 11*54f38fcaSMauro Carvalho Chehab 12*54f38fcaSMauro Carvalho ChehabA typical media device hardware is shown at :ref:`typical_media_device`. 13*54f38fcaSMauro Carvalho Chehab 14*54f38fcaSMauro Carvalho Chehab.. _typical_media_device: 15*54f38fcaSMauro Carvalho Chehab 16*54f38fcaSMauro Carvalho Chehab.. kernel-figure:: typical_media_device.svg 17*54f38fcaSMauro Carvalho Chehab :alt: typical_media_device.svg 18*54f38fcaSMauro Carvalho Chehab :align: center 19*54f38fcaSMauro Carvalho Chehab 20*54f38fcaSMauro Carvalho Chehab Typical Media Device 21*54f38fcaSMauro Carvalho Chehab 22*54f38fcaSMauro Carvalho ChehabThe media infrastructure API was designed to control such devices. It is 23*54f38fcaSMauro Carvalho Chehabdivided into five parts. 24*54f38fcaSMauro Carvalho Chehab 25*54f38fcaSMauro Carvalho Chehab1. The :ref:`first part <v4l2spec>` covers radio, video capture and output, 26*54f38fcaSMauro Carvalho Chehab cameras, analog TV devices and codecs. 27*54f38fcaSMauro Carvalho Chehab 28*54f38fcaSMauro Carvalho Chehab2. The :ref:`second part <dvbapi>` covers the API used for digital TV and 29*54f38fcaSMauro Carvalho Chehab Internet reception via one of the several digital tv standards. While it is 30*54f38fcaSMauro Carvalho Chehab called as DVB API, in fact it covers several different video standards 31*54f38fcaSMauro Carvalho Chehab including DVB-T/T2, DVB-S/S2, DVB-C, ATSC, ISDB-T, ISDB-S, DTMB, etc. The 32*54f38fcaSMauro Carvalho Chehab complete list of supported standards can be found at 33*54f38fcaSMauro Carvalho Chehab :c:type:`fe_delivery_system`. 34*54f38fcaSMauro Carvalho Chehab 35*54f38fcaSMauro Carvalho Chehab3. The :ref:`third part <remote_controllers>` covers the Remote Controller API. 36*54f38fcaSMauro Carvalho Chehab 37*54f38fcaSMauro Carvalho Chehab4. The :ref:`fourth part <media_controller>` covers the Media Controller API. 38*54f38fcaSMauro Carvalho Chehab 39*54f38fcaSMauro Carvalho Chehab5. The :ref:`fifth part <cec>` covers the CEC (Consumer Electronics Control) API. 40*54f38fcaSMauro Carvalho Chehab 41*54f38fcaSMauro Carvalho ChehabIt should also be noted that a media device may also have audio components, like 42*54f38fcaSMauro Carvalho Chehabmixers, PCM capture, PCM playback, etc, which are controlled via ALSA API. For 43*54f38fcaSMauro Carvalho Chehabadditional information and for the latest development code, see: 44*54f38fcaSMauro Carvalho Chehab`https://linuxtv.org <https://linuxtv.org>`__. For discussing improvements, 45*54f38fcaSMauro Carvalho Chehabreporting troubles, sending new drivers, etc, please mail to: `Linux Media 46*54f38fcaSMauro Carvalho ChehabMailing List (LMML) <http://vger.kernel.org/vger-lists.html#linux-media>`__. 47