Merge remote-tracking branch 'vfio/next'
[deliverable/linux.git] / Documentation / media / uapi / dvb / dmx_types.rst
CommitLineData
5377d91f
MH
1.. -*- coding: utf-8; mode: rst -*-
2
3.. _dmx_types:
4
5****************
6Demux Data Types
7****************
8
5377d91f
MH
9Output for the demux
10====================
11
836cf1db 12.. c:type:: dmx_output
5377d91f 13
836cf1db 14.. tabularcolumns:: |p{5.0cm}|p{12.5cm}|
5377d91f
MH
15
16.. flat-table:: enum dmx_output
17 :header-rows: 1
18 :stub-columns: 0
19
20
21 - .. row 1
22
23 - ID
24
25 - Description
26
27 - .. row 2
28
6aeb3f67 29 - .. _DMX-OUT-DECODER:
5377d91f 30
0579e6e3 31 DMX_OUT_DECODER
5377d91f
MH
32
33 - Streaming directly to decoder.
34
35 - .. row 3
36
6aeb3f67 37 - .. _DMX-OUT-TAP:
5377d91f 38
0579e6e3 39 DMX_OUT_TAP
5377d91f
MH
40
41 - Output going to a memory buffer (to be retrieved via the read
0579e6e3
MCC
42 command). Delivers the stream output to the demux device on which
43 the ioctl is called.
5377d91f
MH
44
45 - .. row 4
46
6aeb3f67 47 - .. _DMX-OUT-TS-TAP:
5377d91f 48
0579e6e3 49 DMX_OUT_TS_TAP
5377d91f
MH
50
51 - Output multiplexed into a new TS (to be retrieved by reading from
0579e6e3
MCC
52 the logical DVR device). Routes output to the logical DVR device
53 ``/dev/dvb/adapter?/dvr?``, which delivers a TS multiplexed from
54 all filters for which ``DMX_OUT_TS_TAP`` was specified.
5377d91f
MH
55
56 - .. row 5
57
6aeb3f67 58 - .. _DMX-OUT-TSDEMUX-TAP:
5377d91f 59
0579e6e3 60 DMX_OUT_TSDEMUX_TAP
5377d91f
MH
61
62 - Like :ref:`DMX_OUT_TS_TAP <DMX-OUT-TS-TAP>` but retrieved
0579e6e3 63 from the DMX device.
5377d91f
MH
64
65
5377d91f
MH
66dmx_input_t
67===========
68
836cf1db 69.. c:type:: dmx_input
5377d91f
MH
70
71.. code-block:: c
72
73 typedef enum
74 {
0579e6e3
MCC
75 DMX_IN_FRONTEND, /* Input from a front-end device. */
76 DMX_IN_DVR /* Input from the logical DVR device. */
5377d91f
MH
77 } dmx_input_t;
78
79
5377d91f
MH
80dmx_pes_type_t
81==============
82
836cf1db
MCC
83.. c:type:: dmx_pes_type
84
5377d91f
MH
85
86.. code-block:: c
87
88 typedef enum
89 {
0579e6e3
MCC
90 DMX_PES_AUDIO0,
91 DMX_PES_VIDEO0,
92 DMX_PES_TELETEXT0,
93 DMX_PES_SUBTITLE0,
94 DMX_PES_PCR0,
95
96 DMX_PES_AUDIO1,
97 DMX_PES_VIDEO1,
98 DMX_PES_TELETEXT1,
99 DMX_PES_SUBTITLE1,
100 DMX_PES_PCR1,
101
102 DMX_PES_AUDIO2,
103 DMX_PES_VIDEO2,
104 DMX_PES_TELETEXT2,
105 DMX_PES_SUBTITLE2,
106 DMX_PES_PCR2,
107
108 DMX_PES_AUDIO3,
109 DMX_PES_VIDEO3,
110 DMX_PES_TELETEXT3,
111 DMX_PES_SUBTITLE3,
112 DMX_PES_PCR3,
113
114 DMX_PES_OTHER
5377d91f
MH
115 } dmx_pes_type_t;
116
117
5377d91f
MH
118struct dmx_filter
119=================
120
836cf1db 121.. c:type:: dmx_filter
5377d91f
MH
122
123.. code-block:: c
124
125 typedef struct dmx_filter
126 {
0579e6e3
MCC
127 __u8 filter[DMX_FILTER_SIZE];
128 __u8 mask[DMX_FILTER_SIZE];
129 __u8 mode[DMX_FILTER_SIZE];
5377d91f
MH
130 } dmx_filter_t;
131
132
e8be7e97 133.. c:type:: dmx_sct_filter_params
5377d91f
MH
134
135struct dmx_sct_filter_params
136============================
137
138
139.. code-block:: c
140
141 struct dmx_sct_filter_params
142 {
0579e6e3
MCC
143 __u16 pid;
144 dmx_filter_t filter;
145 __u32 timeout;
146 __u32 flags;
5377d91f
MH
147 #define DMX_CHECK_CRC 1
148 #define DMX_ONESHOT 2
149 #define DMX_IMMEDIATE_START 4
150 #define DMX_KERNEL_CLIENT 0x8000
151 };
152
153
5377d91f
MH
154struct dmx_pes_filter_params
155============================
156
836cf1db 157.. c:type:: dmx_pes_filter_params
5377d91f
MH
158
159.. code-block:: c
160
161 struct dmx_pes_filter_params
162 {
0579e6e3
MCC
163 __u16 pid;
164 dmx_input_t input;
165 dmx_output_t output;
166 dmx_pes_type_t pes_type;
167 __u32 flags;
5377d91f
MH
168 };
169
170
5377d91f
MH
171struct dmx_event
172================
173
836cf1db 174.. c:type:: dmx_event
5377d91f
MH
175
176.. code-block:: c
177
178 struct dmx_event
179 {
0579e6e3
MCC
180 dmx_event_t event;
181 time_t timeStamp;
182 union
183 {
184 dmx_scrambling_status_t scrambling;
185 } u;
5377d91f
MH
186 };
187
188
5377d91f
MH
189struct dmx_stc
190==============
191
836cf1db 192.. c:type:: dmx_stc
5377d91f
MH
193
194.. code-block:: c
195
196 struct dmx_stc {
0579e6e3
MCC
197 unsigned int num; /* input : which STC? 0..N */
198 unsigned int base; /* output: divisor for stc to get 90 kHz clock */
199 __u64 stc; /* output: stc in 'base'*90 kHz units */
5377d91f
MH
200 };
201
202
5377d91f
MH
203struct dmx_caps
204===============
205
836cf1db 206.. c:type:: dmx_caps
5377d91f
MH
207
208.. code-block:: c
209
210 typedef struct dmx_caps {
0579e6e3
MCC
211 __u32 caps;
212 int num_decoders;
5377d91f
MH
213 } dmx_caps_t;
214
215
836cf1db
MCC
216enum dmx_source
217===============
5377d91f 218
836cf1db 219.. c:type:: dmx_source
5377d91f
MH
220
221.. code-block:: c
222
836cf1db 223 typedef enum dmx_source {
0579e6e3
MCC
224 DMX_SOURCE_FRONT0 = 0,
225 DMX_SOURCE_FRONT1,
226 DMX_SOURCE_FRONT2,
227 DMX_SOURCE_FRONT3,
228 DMX_SOURCE_DVR0 = 16,
229 DMX_SOURCE_DVR1,
230 DMX_SOURCE_DVR2,
231 DMX_SOURCE_DVR3
5377d91f 232 } dmx_source_t;
This page took 0.053156 seconds and 5 git commands to generate.