|  | <?xml version="1.0" encoding="UTF-8"?> | 
|  | <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" | 
|  | "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ | 
|  | <!ENTITY % media-entities SYSTEM "./media-entities.tmpl"> %media-entities; | 
|  | <!ENTITY media-indices SYSTEM "./media-indices.tmpl"> | 
|  |  | 
|  | <!ENTITY eg                     "e. g."> | 
|  | <!ENTITY ie                     "i. e."> | 
|  | <!ENTITY fd                     "File descriptor returned by <link linkend='func-open'><function>open()</function></link>."> | 
|  | <!ENTITY fe_fd                  "File descriptor returned by <link linkend='frontend_f_open'><function>open()</function></link>."> | 
|  | <!ENTITY i2c                    "I<superscript>2</superscript>C"> | 
|  | <!ENTITY return-value		"<title>Return Value</title><para>On success <returnvalue>0</returnvalue> is returned, on error <returnvalue>-1</returnvalue> and the <varname>errno</varname> variable is set appropriately. The generic error codes are described at the <link linkend='gen-errors'>Generic Error Codes</link> chapter.</para>"> | 
|  | <!ENTITY return-value-dvb	"<para>RETURN VALUE</para><para>On success <returnvalue>0</returnvalue> is returned, on error <returnvalue>-1</returnvalue> and the <varname>errno</varname> variable is set appropriately. The generic error codes are described at the <link linkend='gen-errors'>Generic Error Codes</link> chapter.</para>"> | 
|  | <!ENTITY manvol                 "<manvolnum>2</manvolnum>"> | 
|  |  | 
|  | <!-- Table templates: structs, structs w/union, defines. --> | 
|  | <!ENTITY cs-str                 "<colspec colname='c1' colwidth='1*' /><colspec colname='c2' colwidth='1*' /><colspec colname='c3' colwidth='2*' /><spanspec spanname='hspan' namest='c1' nameend='c3' />"> | 
|  | <!ENTITY cs-ustr                "<colspec colname='c1' colwidth='1*' /><colspec colname='c2' colwidth='1*' /><colspec colname='c3' colwidth='1*' /><colspec colname='c4' colwidth='2*' /><spanspec spanname='hspan' namest='c1' nameend='c4' />"> | 
|  | <!ENTITY cs-def                 "<colspec colname='c1' colwidth='3*' /><colspec colname='c2' colwidth='1*' /><colspec colname='c3' colwidth='4*' /><spanspec spanname='hspan' namest='c1' nameend='c3' />"> | 
|  |  | 
|  | <!-- Video for Linux mailing list address. --> | 
|  | <!ENTITY v4l-ml                 "<ulink url='http://www.linuxtv.org/lists.php'>http://www.linuxtv.org/lists.php</ulink>"> | 
|  |  | 
|  | <!-- LinuxTV v4l-dvb repository. --> | 
|  | <!ENTITY v4l-dvb		"<ulink url='http://linuxtv.org/repo/'>http://linuxtv.org/repo/</ulink>"> | 
|  | <!ENTITY dash-ent-8             "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | 
|  | <!ENTITY dash-ent-10            "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | 
|  | <!ENTITY dash-ent-12            "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | 
|  | <!ENTITY dash-ent-14            "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | 
|  | <!ENTITY dash-ent-16            "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | 
|  | <!ENTITY dash-ent-20            "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | 
|  | <!ENTITY dash-ent-22            "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | 
|  | <!ENTITY dash-ent-24            "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> | 
|  | ]> | 
|  |  | 
|  | <book id="media_api" lang="en"> | 
|  | <bookinfo> | 
|  | <title>LINUX MEDIA INFRASTRUCTURE API</title> | 
|  |  | 
|  | <copyright> | 
|  | <year>2009-2014</year> | 
|  | <holder>LinuxTV Developers</holder> | 
|  | </copyright> | 
|  |  | 
|  | <legalnotice> | 
|  | <para>Permission is granted to copy, distribute and/or modify | 
|  | this document under the terms of the GNU Free Documentation License, | 
|  | Version 1.1 or any later version published by the Free Software | 
|  | Foundation. A copy of the license is included in the chapter entitled | 
|  | "GNU Free Documentation License"</para> | 
|  | </legalnotice> | 
|  | </bookinfo> | 
|  |  | 
|  | <toc></toc> <!-- autogenerated --> | 
|  |  | 
|  | <preface> | 
|  | <title>Introduction</title> | 
|  |  | 
|  | <para>This document covers the Linux Kernel to Userspace API's used by | 
|  | video and radio streaming devices, including video cameras, | 
|  | analog and digital TV receiver cards, AM/FM receiver cards, | 
|  | streaming capture and output devices, codec devices and remote | 
|  | controllers.</para> | 
|  | <para>A typical media device hardware is shown at | 
|  | <xref linkend="typical_media_device" />.</para> | 
|  | <figure id="typical_media_device"> | 
|  | <title>Typical Media Device</title> | 
|  | <mediaobject> | 
|  | <imageobject> | 
|  | <imagedata fileref="typical_media_device.svg" format="SVG" /> | 
|  | </imageobject> | 
|  | <textobject> | 
|  | <phrase>Typical Media Device Block Diagram</phrase> | 
|  | </textobject> | 
|  | </mediaobject> | 
|  | </figure> | 
|  | <para>The media infrastructure API was designed to control such | 
|  | devices. It is divided into four parts.</para> | 
|  | <para>The first part covers radio, video capture and output, | 
|  | cameras, analog TV devices and codecs.</para> | 
|  | <para>The second part covers the | 
|  | API used for digital TV and Internet reception via one of the | 
|  | several digital tv standards. While it is called as DVB API, | 
|  | in fact it covers several different video standards including | 
|  | DVB-T/T2, DVB-S/S2, DVB-C, ATSC, ISDB-T, ISDB-S,etc. The complete | 
|  | list of supported standards can be found at | 
|  | <xref linkend="fe-delivery-system-t" />.</para> | 
|  | <para>The third part covers the Remote Controller API.</para> | 
|  | <para>The fourth part covers the Media Controller API.</para> | 
|  | <para>It should also be noted that a media device may also have audio | 
|  | components, like mixers, PCM capture, PCM playback, etc, which | 
|  | are controlled via ALSA API.</para> | 
|  | <para>For additional information and for the latest development code, | 
|  | see: <ulink url="http://linuxtv.org">http://linuxtv.org</ulink>.</para> | 
|  | <para>For discussing improvements, reporting troubles, sending new drivers, etc, please mail to: <ulink url="http://vger.kernel.org/vger-lists.html#linux-media">Linux Media Mailing List (LMML).</ulink>.</para> | 
|  | </preface> | 
|  |  | 
|  | <part id="v4l2spec"> | 
|  | &sub-v4l2; | 
|  | </part> | 
|  | <part id="dvbapi"> | 
|  | &sub-dvbapi; | 
|  | </part> | 
|  | <part id="remotes"> | 
|  | &sub-remote_controllers; | 
|  | </part> | 
|  | <part id="media_common"> | 
|  | &sub-media-controller; | 
|  | </part> | 
|  |  | 
|  | <chapter id="gen_errors"> | 
|  | &sub-gen-errors; | 
|  | </chapter> | 
|  |  | 
|  | &sub-fdl-appendix; | 
|  |  | 
|  | </book> |