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