~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/userspace-api/media/dvb/intro.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/userspace-api/media/dvb/intro.rst (Architecture m68k) and /Documentation/userspace-api/media/dvb/intro.rst (Architecture i386)


  1 .. SPDX-License-Identifier: GFDL-1.1-no-invari      1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
  2                                                     2 
  3 .. _dvb_introdution:                                3 .. _dvb_introdution:
  4                                                     4 
  5 ************                                        5 ************
  6 Introduction                                        6 Introduction
  7 ************                                        7 ************
  8                                                     8 
  9                                                     9 
 10 .. _requisites:                                    10 .. _requisites:
 11                                                    11 
 12 What you need to know                              12 What you need to know
 13 =====================                              13 =====================
 14                                                    14 
 15 The reader of this document is required to hav     15 The reader of this document is required to have some knowledge in the
 16 area of digital video broadcasting (Digital TV     16 area of digital video broadcasting (Digital TV) and should be familiar with
 17 part I of the MPEG2 specification ISO/IEC 1381     17 part I of the MPEG2 specification ISO/IEC 13818 (aka ITU-T H.222), i.e
 18 you should know what a program/transport strea     18 you should know what a program/transport stream (PS/TS) is and what is
 19 meant by a packetized elementary stream (PES)      19 meant by a packetized elementary stream (PES) or an I-frame.
 20                                                    20 
 21 Various Digital TV standards documents are ava     21 Various Digital TV standards documents are available for download at:
 22                                                    22 
 23 - European standards (DVB): http://www.dvb.org     23 - European standards (DVB): http://www.dvb.org and/or http://www.etsi.org.
 24 - American standards (ATSC): https://www.atsc.     24 - American standards (ATSC): https://www.atsc.org/standards/
 25 - Japanese standards (ISDB): http://www.dibeg.     25 - Japanese standards (ISDB): http://www.dibeg.org/
 26                                                    26 
 27 It is also necessary to know how to access Lin     27 It is also necessary to know how to access Linux devices and how to
 28 use ioctl calls. This also includes the knowle     28 use ioctl calls. This also includes the knowledge of C or C++.
 29                                                    29 
 30                                                    30 
 31 .. _history:                                       31 .. _history:
 32                                                    32 
 33 History                                            33 History
 34 =======                                            34 =======
 35                                                    35 
 36 The first API for Digital TV cards we used at      36 The first API for Digital TV cards we used at Convergence in late 1999 was an
 37 extension of the Video4Linux API which was pri     37 extension of the Video4Linux API which was primarily developed for frame
 38 grabber cards. As such it was not really well      38 grabber cards. As such it was not really well suited to be used for Digital
 39 TV cards and their new features like recording     39 TV cards and their new features like recording MPEG streams and filtering
 40 several section and PES data streams at the sa     40 several section and PES data streams at the same time.
 41                                                    41 
 42 In early 2000, Convergence was approached by N     42 In early 2000, Convergence was approached by Nokia with a proposal for a new
 43 standard Linux Digital TV API. As a commitment     43 standard Linux Digital TV API. As a commitment to the development of terminals
 44 based on open standards, Nokia and Convergence     44 based on open standards, Nokia and Convergence made it available to all
 45 Linux developers and published it on https://l     45 Linux developers and published it on https://linuxtv.org in September
 46 2000. With the Linux driver for the Siemens/Ha     46 2000. With the Linux driver for the Siemens/Hauppauge DVB PCI card,
 47 Convergence provided a first implementation of     47 Convergence provided a first implementation of the Linux Digital TV API.
 48 Convergence was the maintainer of the Linux Di     48 Convergence was the maintainer of the Linux Digital TV API in the early
 49 days.                                              49 days.
 50                                                    50 
 51 Now, the API is maintained by the LinuxTV comm     51 Now, the API is maintained by the LinuxTV community (i.e. you, the reader
 52 of this document). The Linux  Digital TV API i     52 of this document). The Linux  Digital TV API is constantly reviewed and
 53 improved together with the improvements at the     53 improved together with the improvements at the subsystem's core at the
 54 Kernel.                                            54 Kernel.
 55                                                    55 
 56                                                    56 
 57 .. _overview:                                      57 .. _overview:
 58                                                    58 
 59 Overview                                           59 Overview
 60 ========                                           60 ========
 61                                                    61 
 62                                                    62 
 63 .. _stb_components:                                63 .. _stb_components:
 64                                                    64 
 65 .. kernel-figure:: dvbstb.svg                      65 .. kernel-figure:: dvbstb.svg
 66     :alt:   dvbstb.svg                             66     :alt:   dvbstb.svg
 67     :align: center                                 67     :align: center
 68                                                    68 
 69     Components of a Digital TV card/STB            69     Components of a Digital TV card/STB
 70                                                    70 
 71 A Digital TV card or set-top-box (STB) usually     71 A Digital TV card or set-top-box (STB) usually consists of the
 72 following main hardware components:                72 following main hardware components:
 73                                                    73 
 74 Frontend consisting of tuner and digital TV de     74 Frontend consisting of tuner and digital TV demodulator
 75    Here the raw signal reaches the digital TV      75    Here the raw signal reaches the digital TV hardware from a satellite dish or
 76    antenna or directly from cable. The fronten     76    antenna or directly from cable. The frontend down-converts and
 77    demodulates this signal into an MPEG transp     77    demodulates this signal into an MPEG transport stream (TS). In case
 78    of a satellite frontend, this includes a fa     78    of a satellite frontend, this includes a facility for satellite
 79    equipment control (SEC), which allows contr     79    equipment control (SEC), which allows control of LNB polarization,
 80    multi feed switches or dish rotors.             80    multi feed switches or dish rotors.
 81                                                    81 
 82 Conditional Access (CA) hardware like CI adapt     82 Conditional Access (CA) hardware like CI adapters and smartcard slots
 83    The complete TS is passed through the CA ha     83    The complete TS is passed through the CA hardware. Programs to which
 84    the user has access (controlled by the smar     84    the user has access (controlled by the smart card) are decoded in
 85    real time and re-inserted into the TS.          85    real time and re-inserted into the TS.
 86                                                    86 
 87    .. note::                                       87    .. note::
 88                                                    88 
 89       Not every digital TV hardware provides c     89       Not every digital TV hardware provides conditional access hardware.
 90                                                    90 
 91 Demultiplexer which filters the incoming Digit     91 Demultiplexer which filters the incoming Digital TV MPEG-TS stream
 92    The demultiplexer splits the TS into its co     92    The demultiplexer splits the TS into its components like audio and
 93    video streams. Besides usually several of s     93    video streams. Besides usually several of such audio and video
 94    streams it also contains data streams with      94    streams it also contains data streams with information about the
 95    programs offered in this or other streams o     95    programs offered in this or other streams of the same provider.
 96                                                    96 
 97 Audio and video decoder                            97 Audio and video decoder
 98    The main targets of the demultiplexer are a     98    The main targets of the demultiplexer are audio and video
 99    decoders. After decoding, they pass on the      99    decoders. After decoding, they pass on the uncompressed audio and
100    video to the computer screen or to a TV set    100    video to the computer screen or to a TV set.
101                                                   101 
102    .. note::                                      102    .. note::
103                                                   103 
104       Modern hardware usually doesn't have a s    104       Modern hardware usually doesn't have a separate decoder hardware, as
105       such functionality can be provided by th    105       such functionality can be provided by the main CPU, by the graphics
106       adapter of the system or by a signal pro    106       adapter of the system or by a signal processing hardware embedded on
107       a Systems on a Chip (SoC) integrated cir    107       a Systems on a Chip (SoC) integrated circuit.
108                                                   108 
109       It may also not be needed for certain us    109       It may also not be needed for certain usages (e.g. for data-only
110       uses like "internet over satellite").       110       uses like "internet over satellite").
111                                                   111 
112 :ref:`stb_components` shows a crude schematic     112 :ref:`stb_components` shows a crude schematic of the control and data
113 flow between those components.                    113 flow between those components.
114                                                   114 
115                                                   115 
116                                                   116 
117 .. _dvb_devices:                                  117 .. _dvb_devices:
118                                                   118 
119 Linux Digital TV Devices                          119 Linux Digital TV Devices
120 ========================                          120 ========================
121                                                   121 
122 The Linux Digital TV API lets you control thes    122 The Linux Digital TV API lets you control these hardware components through
123 currently six Unix-style character devices for    123 currently six Unix-style character devices for video, audio, frontend,
124 demux, CA and IP-over-DVB networking. The vide    124 demux, CA and IP-over-DVB networking. The video and audio devices
125 control the MPEG2 decoder hardware, the fronte    125 control the MPEG2 decoder hardware, the frontend device the tuner and
126 the Digital TV demodulator. The demux device g    126 the Digital TV demodulator. The demux device gives you control over the PES
127 and section filters of the hardware. If the ha    127 and section filters of the hardware. If the hardware does not support
128 filtering these filters can be implemented in     128 filtering these filters can be implemented in software. Finally, the CA
129 device controls all the conditional access cap    129 device controls all the conditional access capabilities of the hardware.
130 It can depend on the individual security requi    130 It can depend on the individual security requirements of the platform,
131 if and how many of the CA functions are made a    131 if and how many of the CA functions are made available to the
132 application through this device.                  132 application through this device.
133                                                   133 
134 All devices can be found in the ``/dev`` tree     134 All devices can be found in the ``/dev`` tree under ``/dev/dvb``. The
135 individual devices are called:                    135 individual devices are called:
136                                                   136 
137 -  ``/dev/dvb/adapterN/audioM``,                  137 -  ``/dev/dvb/adapterN/audioM``,
138                                                   138 
139 -  ``/dev/dvb/adapterN/videoM``,                  139 -  ``/dev/dvb/adapterN/videoM``,
140                                                   140 
141 -  ``/dev/dvb/adapterN/frontendM``,               141 -  ``/dev/dvb/adapterN/frontendM``,
142                                                   142 
143 -  ``/dev/dvb/adapterN/netM``,                    143 -  ``/dev/dvb/adapterN/netM``,
144                                                   144 
145 -  ``/dev/dvb/adapterN/demuxM``,                  145 -  ``/dev/dvb/adapterN/demuxM``,
146                                                   146 
147 -  ``/dev/dvb/adapterN/dvrM``,                    147 -  ``/dev/dvb/adapterN/dvrM``,
148                                                   148 
149 -  ``/dev/dvb/adapterN/caM``,                     149 -  ``/dev/dvb/adapterN/caM``,
150                                                   150 
151 where ``N`` enumerates the Digital TV cards in    151 where ``N`` enumerates the Digital TV cards in a system starting from 0, and
152 ``M`` enumerates the devices of each type with    152 ``M`` enumerates the devices of each type within each adapter, starting
153 from 0, too. We will omit the "``/dev/dvb/adap    153 from 0, too. We will omit the "``/dev/dvb/adapterN/``\ " in the further
154 discussion of these devices.                      154 discussion of these devices.
155                                                   155 
156 More details about the data structures and fun    156 More details about the data structures and function calls of all the
157 devices are described in the following chapter    157 devices are described in the following chapters.
158                                                   158 
159                                                   159 
160 .. _include_files:                                160 .. _include_files:
161                                                   161 
162 API include files                                 162 API include files
163 =================                                 163 =================
164                                                   164 
165 For each of the Digital TV devices a correspon    165 For each of the Digital TV devices a corresponding include file exists. The
166 Digital TV API include files should be include    166 Digital TV API include files should be included in application sources with a
167 partial path like:                                167 partial path like:
168                                                   168 
169                                                   169 
170 .. code-block:: c                                 170 .. code-block:: c
171                                                   171 
172         #include <linux/dvb/ca.h>                 172         #include <linux/dvb/ca.h>
173                                                   173 
174         #include <linux/dvb/dmx.h>                174         #include <linux/dvb/dmx.h>
175                                                   175 
176         #include <linux/dvb/frontend.h>           176         #include <linux/dvb/frontend.h>
177                                                   177 
178         #include <linux/dvb/net.h>                178         #include <linux/dvb/net.h>
179                                                   179 
180                                                   180 
181 To enable applications to support different AP    181 To enable applications to support different API version, an additional
182 include file ``linux/dvb/version.h`` exists, w    182 include file ``linux/dvb/version.h`` exists, which defines the constant
183 ``DVB_API_VERSION``. This document describes `    183 ``DVB_API_VERSION``. This document describes ``DVB_API_VERSION 5.10``.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php