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