Merge tag 'seccomp-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees...
[linux-2.6-block.git] / Documentation / DocBook / media_api.tmpl
CommitLineData
eda6bc2d 1<?xml version="1.0" encoding="UTF-8"?>
96048dc1
MCC
2<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
d80bd70f
MCC
4<!ENTITY % media-entities SYSTEM "./media-entities.tmpl"> %media-entities;
5<!ENTITY media-indices SYSTEM "./media-indices.tmpl">
8e080c2e
MCC
6
7<!ENTITY eg "e.&nbsp;g.">
8<!ENTITY ie "i.&nbsp;e.">
9<!ENTITY fd "File descriptor returned by <link linkend='func-open'><function>open()</function></link>.">
c130d88b 10<!ENTITY fe_fd "File descriptor returned by <link linkend='frontend_f_open'><function>open()</function></link>.">
8e080c2e 11<!ENTITY i2c "I<superscript>2</superscript>C">
6d172492 12<!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>">
3de530f8 13<!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>">
8e080c2e
MCC
14<!ENTITY manvol "<manvolnum>2</manvolnum>">
15
16<!-- Table templates: structs, structs w/union, defines. -->
17<!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' />">
18<!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' />">
19<!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' />">
20
21<!-- Video for Linux mailing list address. -->
991ce92f 22<!ENTITY v4l-ml "<ulink url='https://linuxtv.org/lists.php'>https://linuxtv.org/lists.php</ulink>">
8e080c2e
MCC
23
24<!-- LinuxTV v4l-dvb repository. -->
991ce92f 25<!ENTITY v4l-dvb "<ulink url='https://linuxtv.org/repo/'>https://linuxtv.org/repo/</ulink>">
f57fa210 26<!ENTITY dash-ent-8 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
b01189b8 27<!ENTITY dash-ent-10 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
f57fa210
LP
28<!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>">
29<!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>">
7b88fc08 30<!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>">
f57fa210
LP
31<!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>">
32<!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>">
33<!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>">
8e080c2e
MCC
34]>
35
eda6bc2d 36<book id="media_api" lang="en">
8e080c2e 37<bookinfo>
90f745ce
MCC
38 <title>LINUX MEDIA INFRASTRUCTURE API</title>
39
40 <copyright>
eab2b761 41 <year>2009-2015</year>
90f745ce
MCC
42 <holder>LinuxTV Developers</holder>
43 </copyright>
44
45 <legalnotice>
46 <para>Permission is granted to copy, distribute and/or modify
47 this document under the terms of the GNU Free Documentation License,
48 Version 1.1 or any later version published by the Free Software
49 Foundation. A copy of the license is included in the chapter entitled
50 "GNU Free Documentation License"</para>
51 </legalnotice>
8e080c2e
MCC
52</bookinfo>
53
54<toc></toc> <!-- autogenerated -->
55
56<preface>
57 <title>Introduction</title>
58
59 <para>This document covers the Linux Kernel to Userspace API's used by
1b962087 60 video and radio streaming devices, including video cameras,
8e080c2e 61 analog and digital TV receiver cards, AM/FM receiver cards,
1b962087
HV
62 streaming capture and output devices, codec devices and remote
63 controllers.</para>
a1ef3eea
MCC
64 <para>A typical media device hardware is shown at
65 <xref linkend="typical_media_device" />.</para>
66 <figure id="typical_media_device">
67 <title>Typical Media Device</title>
68 <mediaobject>
69 <imageobject>
70 <imagedata fileref="typical_media_device.svg" format="SVG" />
71 </imageobject>
72 <textobject>
73 <phrase>Typical Media Device Block Diagram</phrase>
74 </textobject>
75 </mediaobject>
76 </figure>
77 <para>The media infrastructure API was designed to control such
78 devices. It is divided into four parts.</para>
1b962087
HV
79 <para>The first part covers radio, video capture and output,
80 cameras, analog TV devices and codecs.</para>
8e080c2e
MCC
81 <para>The second part covers the
82 API used for digital TV and Internet reception via one of the
83 several digital tv standards. While it is called as DVB API,
84 in fact it covers several different video standards including
39b9ce2c
MCC
85 DVB-T/T2, DVB-S/S2, DVB-C, ATSC, ISDB-T, ISDB-S,etc. The complete
86 list of supported standards can be found at
87 <xref linkend="fe-delivery-system-t" />.</para>
571d19c3
HV
88 <para>The third part covers the Remote Controller API.</para>
89 <para>The fourth part covers the Media Controller API.</para>
7832a915
MCC
90 <para>It should also be noted that a media device may also have audio
91 components, like mixers, PCM capture, PCM playback, etc, which
9f67bc52 92 are controlled via ALSA API.</para>
8e080c2e 93 <para>For additional information and for the latest development code,
991ce92f 94 see: <ulink url="https://linuxtv.org">https://linuxtv.org</ulink>.</para>
8e080c2e 95 <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>
8e080c2e
MCC
96</preface>
97
315d27aa
MCC
98<part id="v4l2spec">
99&sub-v4l2;
100</part>
101<part id="dvbapi">
102&sub-dvbapi;
103</part>
104<part id="remotes">
105&sub-remote_controllers;
106</part>
107<part id="media_common">
108&sub-media-controller;
109</part>
6d172492 110
315d27aa
MCC
111<chapter id="gen_errors">
112&sub-gen-errors;
113</chapter>
6d172492 114
8e080c2e
MCC
115&sub-fdl-appendix;
116
117</book>