118 lines
7.4 KiB
XML
118 lines
7.4 KiB
XML
<?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='https://linuxtv.org/lists.php'>https://linuxtv.org/lists.php</ulink>">
|
|
|
|
<!-- LinuxTV v4l-dvb repository. -->
|
|
<!ENTITY v4l-dvb "<ulink url='https://linuxtv.org/repo/'>https://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-2015</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="https://linuxtv.org">https://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>
|