| /** | |
| * This file has no copyright assigned and is placed in the Public Domain. | |
| * This file is part of the w64 mingw-runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
| */ | |
| #include <mpeg2data.h> | |
| #include <mpeg2bits.h> | |
| #ifndef __INC_MPEG2STRUCTS__ | |
| #define __INC_MPEG2STRUCTS__ | |
| typedef enum _MPEG_CONTEXT_TYPE { | |
| MPEG_CONTEXT_BCS_DEMUX = 0, | |
| MPEG_CONTEXT_WINSOCK | |
| } MPEG_CONTEXT_TYPE; | |
| typedef enum _MPEG_CURRENT_NEXT_BIT { | |
| MPEG_SECTION_IS_NEXT = 0, | |
| MPEG_SECTION_IS_CURRENT = 1 | |
| } MPEG_CURRENT_NEXT_BIT; | |
| typedef enum _MPEG_REQUEST_TYPE { | |
| MPEG_RQST_UNKNOWN = 0, | |
| MPEG_RQST_GET_SECTION, | |
| MPEG_RQST_GET_SECTION_ASYNC, | |
| MPEG_RQST_GET_TABLE, | |
| MPEG_RQST_GET_TABLE_ASYNC, | |
| MPEG_RQST_GET_SECTIONS_STREAM, | |
| MPEG_RQST_GET_PES_STREAM, | |
| MPEG_RQST_GET_TS_STREAM, | |
| MPEG_RQST_START_MPE_STREAM | |
| } MPEG_REQUEST_TYPE; | |
| typedef struct _DSMCC_ELEMENT { | |
| PID pid; | |
| BYTE bComponentTag; | |
| DWORD dwCarouselId; | |
| DWORD dwTransactionId; | |
| struct _DSMCC_ELEMENT *pNext; | |
| } DSMCC_ELEMENT, *PDSMCC_ELEMENT; | |
| typedef struct { | |
| WINBOOL fSpecifyProtocol; | |
| BYTE Protocol; | |
| WINBOOL fSpecifyType; | |
| BYTE Type; | |
| WINBOOL fSpecifyMessageId; | |
| WORD MessageId; | |
| WINBOOL fSpecifyTransactionId; | |
| WINBOOL fUseTrxIdMessageIdMask; | |
| DWORD TransactionId; | |
| WINBOOL fSpecifyModuleVersion; | |
| BYTE ModuleVersion; | |
| WINBOOL fSpecifyBlockNumber; | |
| WORD BlockNumber; | |
| WINBOOL fGetModuleCall; | |
| WORD NumberOfBlocksInModule; | |
| } DSMCC_FILTER_OPTIONS; | |
| typedef struct _MPEG_HEADER_BITS_MIDL { | |
| WORD Bits; | |
| } MPEG_HEADER_BITS_MIDL; | |
| typedef struct _MPEG_HEADER_VERSION_BITS_MIDL { | |
| BYTE Bits; | |
| } MPEG_HEADER_VERSION_BITS_MIDL; | |
| typedef struct _DSMCC_SECTION { | |
| TID TableId; | |
| __C89_NAMELESS union { | |
| MPEG_HEADER_BITS_MIDL S; | |
| WORD W; | |
| } Header; | |
| WORD TableIdExtension; | |
| __C89_NAMELESS union { | |
| MPEG_HEADER_VERSION_BITS_MIDL S; | |
| BYTE B; | |
| } Version; | |
| BYTE SectionNumber; | |
| BYTE LastSectionNumber; | |
| BYTE ProtocolDiscriminator; | |
| BYTE DsmccType; | |
| WORD MessageId; | |
| DWORD TransactionId; | |
| BYTE Reserved; | |
| BYTE AdaptationLength; | |
| WORD MessageLength; | |
| BYTE RemainingData[1]; | |
| } DSMCC_SECTION, *PDSMCC_SECTION; | |
| typedef struct _DVB_EIT_FILTER_OPTIONS { | |
| WINBOOL fSpecifySegment; | |
| BYTE bSegment; | |
| } DVB_EIT_FILTER_OPTIONS, *PDVB_EIT_FILTER_OPTIONS; | |
| typedef struct { | |
| TID TableId; | |
| __C89_NAMELESS union { | |
| MPEG_HEADER_BITS_MIDL S; | |
| WORD W; | |
| } Header; | |
| WORD TableIdExtension; | |
| __C89_NAMELESS union { | |
| MPEG_HEADER_VERSION_BITS_MIDL S; | |
| BYTE B; | |
| } Version; | |
| BYTE SectionNumber; | |
| BYTE LastSectionNumber; | |
| BYTE RemainingData[1]; | |
| } LONG_SECTION, *PLONG_SECTION; | |
| typedef struct _MPE_ELEMENT { | |
| PID pid; | |
| BYTE bComponentTag; | |
| struct _MPE_ELEMENT *pNext; | |
| } MPE_ELEMENT, *PMPE_ELEMENT; | |
| typedef struct _MPEG2_FILTER { | |
| BYTE bVersionNumber; | |
| WORD wFilterSize; | |
| WINBOOL fUseRawFilteringBits; | |
| BYTE Filter[16]; | |
| BYTE Mask[16]; | |
| WINBOOL fSpecifyTableIdExtension; | |
| WORD TableIdExtension; | |
| WINBOOL fSpecifyVersion; | |
| BYTE Version; | |
| WINBOOL fSpecifySectionNumber; | |
| BYTE SectionNumber; | |
| WINBOOL fSpecifyCurrentNext; | |
| WINBOOL fNext; | |
| WINBOOL fSpecifyDsmccOptions; | |
| DSMCC_FILTER_OPTIONS Dsmcc; | |
| WINBOOL fSpecifyAtscOptions; | |
| ATSC_FILTER_OPTIONS Atsc; | |
| } MPEG2_FILTER, *PMPEG2_FILTER; | |
| typedef struct { | |
| BYTE bVersionNumber; | |
| WORD wFilterSize; | |
| WINBOOL fUseRawFilteringBits; | |
| BYTE Filter[16]; | |
| BYTE Mask[16]; | |
| WINBOOL fSpecifyTableIdExtension; | |
| WORD TableIdExtension; | |
| WINBOOL fSpecifyVersion; | |
| BYTE Version; | |
| WINBOOL fSpecifySectionNumber; | |
| BYTE SectionNumber; | |
| WINBOOL fSpecifyCurrentNext; | |
| WINBOOL fNext; | |
| WINBOOL fSpecifyDsmccOptions; | |
| DSMCC_FILTER_OPTIONS Dsmcc; | |
| WINBOOL fSpecifyAtscOptions; | |
| ATSC_FILTER_OPTIONS Atsc; | |
| WINBOOL fSpecifyDvbEitOptions; | |
| DVB_EIT_FILTER_OPTIONS Dvb_Eit; | |
| } MPEG2_FILTER2, *PMPEG2_FILTER2; | |
| typedef struct _MPEG_BCS_DEMUX { | |
| DWORD AVMGraphId; | |
| } MPEG_BCS_DEMUX; | |
| typedef struct _MPEG_WINSOCK { | |
| DWORD AVMGraphId; | |
| } MPEG_WINSOCK; | |
| typedef struct _MPEG_CONTEXT { | |
| MPEG_CONTEXT_TYPE Type; | |
| __C89_NAMELESS union { | |
| MPEG_BCS_DEMUX Demux; | |
| MPEG_WINSOCK Winsock; | |
| } U; | |
| } MPEG_CONTEXT, *PMPEG_CONTEXT; | |
| typedef struct _MPEG_DATE { | |
| BYTE Date; | |
| BYTE Month; | |
| WORD Year; | |
| } MPEG_DATE; | |
| typedef struct _MPEG_TIME { | |
| BYTE Hours; | |
| BYTE Minutes; | |
| BYTE Seconds; | |
| } MPEG_TIME; | |
| typedef struct _MPEG_DATE_AND_TIME { | |
| MPEG_DATE D; | |
| MPEG_TIME T; | |
| } MPEG_DATE_AND_TIME; | |
| typedef MPEG_TIME MPEG_DURATION; | |
| typedef struct { | |
| TID TableId; | |
| __C89_NAMELESS union { | |
| MPEG_HEADER_BITS_MIDL S; | |
| WORD W; | |
| } Header; | |
| BYTE SectionData[1]; | |
| } SECTION, *PSECTION; | |
| typedef struct _MPEG_RQST_PACKET { | |
| DWORD dwLength; | |
| PSECTION pSection; | |
| } MPEG_RQST_PACKET, *PMPEG_RQST_PACKET; | |
| typedef struct _MPEG_PACKET_LIST { | |
| WORD wPacketCount; | |
| PMPEG_RQST_PACKET PacketList[1]; | |
| } MPEG_PACKET_LIST, *PMPEG_PACKET_LIST; | |
| typedef struct _MPEG_STREAM_BUFFER { | |
| HRESULT hr; | |
| DWORD dwDataBufferSize; | |
| DWORD dwSizeOfDataRead; | |
| BYTE *pDataBuffer; | |
| } MPEG_STREAM_BUFFER, *PMPEG_STREAM_BUFFER; | |
| #endif /*__INC_MPEG2STRUCTS__*/ |