xref: /utopia/UTPA2-700.0.x/modules/dscmb/drv/nsk2/raspdemuxrasp.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 /*
2 Copyright ((c)) NDS Limited 2005-2010
3 
4 P R O P R I E T A R Y  &  C O N F I D E N T I A L
5 
6 The copyright of this code and related documentation together with
7 any other associated intellectual property rights are vested in
8 NDS Limited and may not be used except in accordance with the terms
9 of the licence that you have entered into with NDS Limited.
10 Use of this material without an express licence from NDS Limited
11 shall be an infringement of copyright and any other intellectual
12 property rights that may be incorporated with this material.
13 
14 P L E A S E     N O T E :
15 
16 This header file has been automatically generated from a source CDI
17 Specification file in XML format.
18 */
19 /*
20 CDI Issue 7
21 */
22 
23 /*
24 CDI header file for the demux rasp device.
25 This file is immutable. Do not edit.
26 */
27 
28 #ifndef __NDS_CDI_RASPDEMUXRASP_H__
29 #define __NDS_CDI_RASPDEMUXRASP_H__
30 
31 /* Include the platform-specific IOCTL macros. */
32 #include <common_ioctl.h>
33 #include <rasp_ioctl.h>
34 #include <cdi_stdint.h>
35 #include <common.h>
36 
37 /* Definitions and types. */
38 #ifndef _PTS_DEFINED_
39 #define _PTS_DEFINED_
40 typedef tag_PTS_do_not_use_in_client PTS;
41 #endif
42 
43 /* Demux RASP notification field definitions. */
44 #define DEMUX_RASP_TPID_PAYLOAD_UNIT_START_INDICATOR       (0x00000001U)
45 #define DEMUX_RASP_TPID_CHANGE_ES_TO_NOT_SCRAMBLED         (0x00000002U)
46 #define DEMUX_RASP_TPID_CHANGE_ES_TO_EVEN_SCRAMBLED        (0x00000004U)
47 #define DEMUX_RASP_TPID_CHANGE_ES_TO_ODD_SCRAMBLED         (0x00000008U)
48 #define DEMUX_RASP_TPID_DISCONTINUITY_INDICATOR            (0x00000100U)
49 #define DEMUX_RASP_TPID_RANDOM_ACCESS_INDICATOR            (0x00000200U)
50 #define DEMUX_RASP_TPID_ES_PRIORITY_INDICATOR              (0x00000400U)
51 #define DEMUX_RASP_TPID_PCR_FLAG                           (0x00000800U)
52 #define DEMUX_RASP_TPID_OPCR_FLAG                          (0x00001000U)
53 #define DEMUX_RASP_TPID_SPLICING_POINT_FLAG                (0x00002000U)
54 #define DEMUX_RASP_TPID_TRANSPORT_PRIVATE_DATA             (0x00004000U)
55 #define DEMUX_RASP_TPID_ADAPTATION_FIELD_EXTENSION_FLAG    (0x00008000U)
56 #define DEMUX_RASP_GENERAL_FIRST_PACKET                    (0x01000000U)
57 #define DEMUX_RASP_GENERAL_INTERNAL_TICK                   (0x02000000U)
58 /* Obsolete:
59 	The following definitions for DEMUX_RASP_* are obsolete
60 	as of CDI [version 2] Issue 5.
61 	The definitions may be removed in a future version
62 	of the CDI specification and from this header file.
63 */
64 #define DEMUX_RASP_TPID_SECTION_FILTER_MATCH               (0x00000020U)
65 #define DEMUX_RASP_TPID_PACKET_REPLACEMENT                 (0x00010000U)
66 
67 /* Demux RASP Event definitions. */
68 #define DEMUX_RASP_EVENT_THRESHOLD_REACHED               (0x00000001U)
69 #define DEMUX_RASP_EVENT_OVERFLOW                        (0x00000002U)
70 #define DEMUX_RASP_EVENT_TP_PAYLOAD_THRESHOLD_REACHED    (0x00000004U)
71 #define DEMUX_RASP_EVENT_TP_PAYLOAD_OVERFLOW             (0x00000008U)
72 
73 /* Capabilities Versions definitions. */
74 #define DEMUX_RASP_CAP_V0    (0x00000001U)
75 #define DEMUX_RASP_CAP_V1    (0x00000002U)
76 
77 /* RASP TP Payload PES Notification Fields definitions. */
78 #define DEMUX_RASP_PES_PTS    (0x00000001U)
79 
80 /* RASP Encoding Formats definitions. */
81 #define DEMUX_RASP_ES_ENCODING_FORMAT_MPEG2    (0x00000001U)
82 
83 /* MPEG2 ES Encoding Format definitions. */
84 #define DEMUX_RASP_ES_MPEG2_SEQUENCE_START     (0x00000001U)
85 #define DEMUX_RASP_ES_MPEG2_PICTURE_I_START    (0x00000010U)
86 #define DEMUX_RASP_ES_MPEG2_PICTURE_P_START    (0x00000020U)
87 #define DEMUX_RASP_ES_MPEG2_PICTURE_B_START    (0x00000040U)
88 
89 /* MPEG2 ES Encoding Format definitions. */
90 #define DEMUX_RASP_ES_MPEG2_PIC_TYPE_FIELD_TOP       (0x01U)
91 #define DEMUX_RASP_ES_MPEG2_PIC_TYPE_FIELD_BOTTOM    (0x02U)
92 #define DEMUX_RASP_ES_MPEG2_PIC_TYPE_FRAME           (0x03U)
93 
94 /* Demux Trigger definitions. */
95 #define DEMUX_RASP_TRIGGER_BY_TIME         (1U)
96 #define DEMUX_RASP_TRIGGER_BY_RASP_DATA    (2U)
97 
98 /* DemuxRaspConfiguration structure */
99 typedef struct DemuxRaspConfiguration_cdi
100 {
101     uint32_t  thresholdType;
102     uint32_t  raspDataThreshold;
103     uint32_t  timeThreshold;
104     uint32_t  tpidIndependentEvents;
105 } DemuxRaspConfiguration;
106 
107 /* DemuxRaspTPMask structure */
108 typedef struct DemuxRaspTPMask_cdi
109 {
110     uint32_t  tpid;
111     uint32_t  tpMaskID;
112     uint32_t  eventMask;
113     uint32_t  payloadMask;
114 } DemuxRaspTPMask;
115 
116 /* DemuxRaspTimerTPNumber structure */
117 typedef struct DemuxRaspTimerTPNumber_cdi
118 {
119     uint32_t  time;
120     uint8_t   packetNumber[8];
121 } DemuxRaspTimerTPNumber;
122 
123 /* DemuxRaspTP structure */
124 typedef struct DemuxRaspTP_cdi
125 {
126     uint8_t  packetNumber[8];
127     uint8_t  bufferLength;
128     uint8_t  *buffer;
129 } DemuxRaspTP;
130 
131 /* DemuxRaspReplaceTP structure */
132 
133 /* Obsolete:
134    The following definition for DemuxRaspReplaceTP is obsolete
135    as of CDI [version 2] Issue 5.
136    The definition may be removed in a future version of the
137    CDI specification and from this header file.
138 */
139 typedef struct DemuxRaspReplaceTP_cdi
140 {
141     uint32_t  tpid;
142     uint32_t  tpReplacerID;
143     uint8_t   fromByte;
144     uint8_t   numBytes;
145     const void      *replaceData;
146 } DemuxRaspReplaceTP;
147 
148 /* DemuxRaspDataBlock structure */
149 typedef struct DemuxRaspDataBlock_cdi
150 {
151     uint32_t  eventDescriptor;
152     uint32_t  tpid;
153     uint8_t   packetNumber[8];
154     uint32_t  timer;
155     uint32_t  streamClock;
156 } DemuxRaspDataBlock;
157 
158 /* DemuxRaspRead structure */
159 typedef struct DemuxRaspRead_cdi
160 {
161     uint32_t            numDataBlocksToRead;
162     DemuxRaspDataBlock  *dataBlocks;
163     uint32_t            numDataBlocksReturned;
164 } DemuxRaspRead;
165 
166 /* DemuxRaspCapsEx structure */
167 typedef struct DemuxRaspCapsEx_cdi
168 {
169     uint32_t  version;
170     void      *capability;
171     uint32_t  capabilitySize;
172 } DemuxRaspCapsEx;
173 
174 /* Demux RASP features definitions. */
175 #define DEMUX_RASP_FEATURE_EVERY_SLOT_TIME         (0x01U)
176 #define DEMUX_RASP_FEATURE_STREAM_CLOCK_STAMP      (0x02U)
177 #define DEMUX_RASP_FEATURE_LOCAL_CLOCK_STAMP       (0x04U)
178 #define DEMUX_RASP_FEATURE_TRIGGER_BY_RASP_DATA    (0x08U)
179 #define DEMUX_RASP_FEATURE_TRIGGER_BY_TIME         (0x10U)
180 #define DEMUX_RASP_FEATURE_GET_TIMER_IN_TICKS      (0x20U)
181 #define DEMUX_RASP_FEATURE_TP_PAYLOAD_INDEXING     (0x40U)
182 
183 /* Demux RASP capability definitions. */
184 
185 /* Obsolete:
186    The following definitions for Demux RASP capability (DEMUX_RASP_CAP_*)
187    are obsolete as of CDI [version 2] Issue 5.
188    The definition may be removed in a future version of the CDI specification
189    and from this header file.
190 */
191 #define DEMUX_RASP_CAP_EVERY_SLOT_TIME         (DEMUX_RASP_FEATURE_EVERY_SLOT_TIME)
192 #define DEMUX_RASP_CAP_STREAM_CLOCK_STAMP      (DEMUX_RASP_FEATURE_STREAM_CLOCK_STAMP)
193 #define DEMUX_RASP_CAP_LOCAL_CLOCK_STAMP       (DEMUX_RASP_FEATURE_LOCAL_CLOCK_STAMP)
194 #define DEMUX_RASP_CAP_TRIGGER_BY_RASP_DATA    (DEMUX_RASP_FEATURE_TRIGGER_BY_RASP_DATA)
195 #define DEMUX_RASP_CAP_TRIGGER_BY_TIME         (DEMUX_RASP_FEATURE_TRIGGER_BY_TIME)
196 
197 /* DemuxRaspCaps structure */
198 
199 /* Obsolete:
200    The following definition for DemuxRaspCaps is obsolete
201    as of CDI [version 2] Issue 5.
202    The definition may be removed in a future version of the
203    CDI specification and from this header file.
204 */
205 typedef struct DemuxRaspCaps_cdi
206 {
207     uint32_t  raspEvents;
208     uint32_t  clockRate;
209     uint16_t  numConnections;
210     uint16_t  numRaspDataBlocks;
211     uint16_t  numTPs;
212     uint16_t  numTPMasks;
213     uint16_t  numTPreplacers;
214     uint8_t   functionalityMask;
215 } DemuxRaspCaps;
216 
217 typedef DemuxRaspCaps DemuxRaspCapsV0;
218 
219 /* DemuxRaspCapsV1 structure */
220 typedef struct DemuxRaspCapsV1_cdi
221 {
222     uint32_t  raspEvents;
223     uint32_t  clockRate;
224     uint16_t  numConnections;
225     uint16_t  numRaspDataBlocks;
226     uint16_t  numTPs;
227     uint16_t  numTPMasks;
228     uint8_t   features;
229 } DemuxRaspCapsV1;
230 
231 /* TP Payload Data Block Version definitions. */
232 #define DEMUX_RASP_TP_PAYLOAD_DATABLOCK_V0    (0x00000001U)
233 
234 /* RASP TP Payload Feature Definitions definitions. */
235 #define DEMUX_RASP_TP_PAYLOAD_FEATURE_LOCAL_CLOCK_STAMP       (0x00000001U)
236 #define DEMUX_RASP_TP_PAYLOAD_FEATURE_TRIGGER_BY_RASP_DATA    (0x00000002U)
237 #define DEMUX_RASP_TP_PAYLOAD_FEATURE_TRIGGER_BY_TIME         (0x00000004U)
238 #define DEMUX_RASP_TP_PAYLOAD_FEATURE_ES_MPEG2_FRAME_FIELD    (0x00000008U)
239 
240 /* DemuxRaspTPPayloadCaps structure */
241 typedef struct DemuxRaspTPPayloadCaps_cdi
242 {
243     uint32_t  features;
244     uint32_t  pesEvents;
245     uint32_t  esEncodingFormats;
246     uint16_t  numRaspTPPayloadDataBlocks;
247     uint16_t  numTPPayloadMasks;
248     uint8_t   tpPayloadDataBlockVersion;
249 } DemuxRaspTPPayloadCaps;
250 
251 /* DemuxRaspTPPayloadESCaps structure */
252 typedef struct DemuxRaspTPPayloadESCaps_cdi
253 {
254     uint32_t  esEncodingFormat;
255     uint32_t  esEvents;
256 } DemuxRaspTPPayloadESCaps;
257 
258 /* DemuxRaspTPPayloadConfiguration structure */
259 typedef struct DemuxRaspTPPayloadConfiguration_cdi
260 {
261     uint32_t  thresholdType;
262     uint32_t  raspDataThreshold;
263     uint32_t  timeThreshold;
264     uint32_t  tpidIndependentEvents;
265 } DemuxRaspTPPayloadConfiguration;
266 
267 /* DemuxRaspTPPayloadMask structure */
268 typedef struct DemuxRaspTPPayloadMask_cdi
269 {
270     uint32_t  tpid;
271     uint32_t  tpPayloadMaskID;
272     uint32_t  pesEventMask;
273     uint32_t  esEncodingFormat;
274     uint32_t  esEventMask;
275 } DemuxRaspTPPayloadMask;
276 
277 /* DemuxRaspTPPayloadDataBlockV0 structure */
278 typedef struct DemuxRaspTPPayloadDataBlockV0_cdi
279 {
280     uint32_t  pesEventDescriptor;
281     uint32_t  esEventDescriptor;
282     uint32_t  tpid;
283     uint8_t   packetNumber[8];
284     uint32_t  timer;
285     PTS       pts;
286     uint8_t   pictureType;
287 } DemuxRaspTPPayloadDataBlockV0;
288 
289 /* DemuxRaspTPPayloadRead structure */
290 typedef struct DemuxRaspTPPayloadRead_cdi
291 {
292     uint32_t  numDataBlocksToRead;
293     void      *dataBlocks;
294     uint32_t  numDataBlocksReturned;
295 } DemuxRaspTPPayloadRead;
296 
297 
298 /* IOCTL functions. */
299 
300 /* int ioctl(int fd,
301              int request == DEMUX_RASP_SUBSCRIBE_EVENTS,
302              int eventMask);
303 */
304 #define DEMUX_RASP_SUBSCRIBE_EVENTS                (int)CDI_IOW_I(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+0U))
305 
306 /* int ioctl(int fd,
307              int request == DEMUX_RASP_GET_EVENTS,
308              int *events);
309 */
310 #define DEMUX_RASP_GET_EVENTS                      (int)CDI_IOR_I(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+1U))
311 
312 /* int ioctl(int fd,
313              int request == DEMUX_RASP_GET_CONNECTION_IDS,
314              int *remuxIds);
315 */
316 #define DEMUX_RASP_GET_CONNECTION_IDS              (int)CDI_IOR_I(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+2U))
317 
318 /* int ioctl(int fd,
319              int request == DEMUX_RASP_START);
320 */
321 #define DEMUX_RASP_START                           (int)CDI_IO(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+3U))
322 
323 /* int ioctl(int fd,
324              int request == DEMUX_RASP_STOP);
325 */
326 #define DEMUX_RASP_STOP                            (int)CDI_IO(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+4U))
327 
328 /* int ioctl(int fd,
329              int request == DEMUX_RASP_GET_CAPS,
330              DemuxRaspCaps *caps);
331 */
332 
333 /* Obsolete:
334    The following definition for ioctl DEMUX_RASP_GET_CAPS
335    is obsolete as of CDI [version 2] Issue 5.
336    The definition may be removed in a future version of the CDI specification
337    and from this header file.
338 */
339 #define DEMUX_RASP_GET_CAPS                        (int)CDI_IOR_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+5U), DemuxRaspCaps)
340 
341 /* int ioctl(int fd,
342              int request == DEMUX_RASP_ATTACH_REMUX,
343              int remuxId);
344 */
345 #define DEMUX_RASP_ATTACH_REMUX                    (int)CDI_IOW_I(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+6U))
346 
347 /* int ioctl(int fd,
348              int request == DEMUX_RASP_CONFIGURE,
349              DemuxRaspConfiguration *params);
350 */
351 #define DEMUX_RASP_CONFIGURE                       (int)CDI_IOW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+7U), DemuxRaspConfiguration)
352 
353 /* int ioctl(int fd,
354              int request == DEMUX_RASP_SET_TP_MASK,
355              DemuxRaspTPMask *params);
356 */
357 #define DEMUX_RASP_SET_TP_MASK                     (int)CDI_IOW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+8U), DemuxRaspTPMask)
358 
359 /* int ioctl(int fd,
360              int request == DEMUX_RASP_GET_TIMER_AND_TP_NUMBER,
361              DemuxRaspTimerTPNumber *params);
362 */
363 #define DEMUX_RASP_GET_TIMER_AND_TP_NUMBER         (int)CDI_IOR_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+9U), DemuxRaspTimerTPNumber)
364 
365 /* int ioctl(int fd,
366              int request == DEMUX_RASP_GET_TP,
367              DemuxRaspTP *params);
368 */
369 #define DEMUX_RASP_GET_TP                          (int)CDI_IORW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+10U), DemuxRaspTP)
370 
371 /* int ioctl(int fd,
372              int request == DEMUX_RASP_REPLACE_TP,
373              DemuxRaspReplaceTP *params);
374 */
375 
376 /* Obsolete:
377    The following definition for ioctl DEMUX_RASP_REPLACE_TP
378    is obsolete as of CDI [version 2] Issue 5.
379    The definition may be removed in a future version of the CDI specification
380    and from this header file.
381 */
382 #define DEMUX_RASP_REPLACE_TP                      (int)CDI_IOW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+11U), DemuxRaspReplaceTP)
383 
384 /* int ioctl(int fd,
385              int request == DEMUX_RASP_READ,
386              DemuxRaspRead *arg);
387 */
388 #define DEMUX_RASP_READ                            (int)CDI_IORW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+12U), DemuxRaspRead)
389 
390 /* int ioctl(int fd,
391              int request == DEMUX_RASP_GET_CAPS_EX_VERSIONS,
392              uint32_t *versions);
393 */
394 #define DEMUX_RASP_GET_CAPS_EX_VERSIONS            (int)CDI_IOR_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+13U), uint32_t)
395 
396 /* int ioctl(int fd,
397              int request == DEMUX_RASP_GET_CAPS_EX,
398              DemuxRaspCapsEx *arg);
399 */
400 #define DEMUX_RASP_GET_CAPS_EX                     (int)CDI_IORW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+14U), DemuxRaspCapsEx)
401 
402 /* int ioctl(int fd,
403              int request == DEMUX_RASP_GET_TP_PAYLOAD_CAPS,
404              DemuxRaspTPPayloadCaps *params);
405 */
406 #define DEMUX_RASP_GET_TP_PAYLOAD_CAPS             (int)CDI_IOR_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+15U), DemuxRaspTPPayloadCaps)
407 
408 /* int ioctl(int fd,
409              int request == DEMUX_RASP_GET_TP_PAYLOAD_ES_CAPS,
410              DemuxRaspTPPayloadESCaps *params);
411 */
412 #define DEMUX_RASP_GET_TP_PAYLOAD_ES_CAPS          (int)CDI_IORW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+16U), DemuxRaspTPPayloadESCaps)
413 
414 /* int ioctl(int fd,
415              int request == DEMUX_RASP_TP_PAYLOAD_CONFIGURE,
416              DemuxRaspTPPayloadConfiguration *params);
417 */
418 #define DEMUX_RASP_TP_PAYLOAD_CONFIGURE            (int)CDI_IOW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+17U), DemuxRaspTPPayloadConfiguration)
419 
420 /* int ioctl(int fd,
421              int request == DEMUX_RASP_TP_PAYLOAD_SET_MASK,
422              DemuxRaspTPPayloadMask *params);
423 */
424 #define DEMUX_RASP_TP_PAYLOAD_SET_MASK             (int)CDI_IOW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+18U), DemuxRaspTPPayloadMask)
425 
426 /* int ioctl(int fd,
427              int request == DEMUX_RASP_TP_PAYLOAD_READ,
428              DemuxRaspTPPayloadRead *arg);
429 */
430 #define DEMUX_RASP_TP_PAYLOAD_READ                 (int)CDI_IORW_T(CDI_DEMUX_ID, (CDI_DEV_DMXRASP_BASE+19U), DemuxRaspTPPayloadRead)
431 
432 #endif
433 /* End of File. */
434