source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/mpeg2structs.h@ 1170

Last change on this file since 1170 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 5.6 KB
Line 
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7#include <mpeg2data.h>
8#include <mpeg2bits.h>
9
10#ifndef __INC_MPEG2STRUCTS__
11#define __INC_MPEG2STRUCTS__
12
13typedef enum _MPEG_CONTEXT_TYPE {
14 MPEG_CONTEXT_BCS_DEMUX = 0,
15 MPEG_CONTEXT_WINSOCK
16} MPEG_CONTEXT_TYPE;
17
18typedef enum _MPEG_CURRENT_NEXT_BIT {
19 MPEG_SECTION_IS_NEXT = 0,
20 MPEG_SECTION_IS_CURRENT = 1
21} MPEG_CURRENT_NEXT_BIT;
22
23typedef enum _MPEG_REQUEST_TYPE {
24 MPEG_RQST_UNKNOWN = 0,
25 MPEG_RQST_GET_SECTION,
26 MPEG_RQST_GET_SECTION_ASYNC,
27 MPEG_RQST_GET_TABLE,
28 MPEG_RQST_GET_TABLE_ASYNC,
29 MPEG_RQST_GET_SECTIONS_STREAM,
30 MPEG_RQST_GET_PES_STREAM,
31 MPEG_RQST_GET_TS_STREAM,
32 MPEG_RQST_START_MPE_STREAM
33} MPEG_REQUEST_TYPE;
34
35typedef struct _DSMCC_ELEMENT {
36 PID pid;
37 BYTE bComponentTag;
38 DWORD dwCarouselId;
39 DWORD dwTransactionId;
40 struct _DSMCC_ELEMENT *pNext;
41} DSMCC_ELEMENT, *PDSMCC_ELEMENT;
42
43typedef struct {
44 WINBOOL fSpecifyProtocol;
45 BYTE Protocol;
46 WINBOOL fSpecifyType;
47 BYTE Type;
48 WINBOOL fSpecifyMessageId;
49 WORD MessageId;
50 WINBOOL fSpecifyTransactionId;
51 WINBOOL fUseTrxIdMessageIdMask;
52 DWORD TransactionId;
53 WINBOOL fSpecifyModuleVersion;
54 BYTE ModuleVersion;
55 WINBOOL fSpecifyBlockNumber;
56 WORD BlockNumber;
57 WINBOOL fGetModuleCall;
58 WORD NumberOfBlocksInModule;
59} DSMCC_FILTER_OPTIONS;
60
61typedef struct _MPEG_HEADER_BITS_MIDL {
62 WORD Bits;
63} MPEG_HEADER_BITS_MIDL;
64
65typedef struct _MPEG_HEADER_VERSION_BITS_MIDL {
66 BYTE Bits;
67} MPEG_HEADER_VERSION_BITS_MIDL;
68
69typedef struct _DSMCC_SECTION {
70 TID TableId;
71 __C89_NAMELESS union {
72 MPEG_HEADER_BITS_MIDL S;
73 WORD W;
74 } Header;
75 WORD TableIdExtension;
76 __C89_NAMELESS union {
77 MPEG_HEADER_VERSION_BITS_MIDL S;
78 BYTE B;
79 } Version;
80 BYTE SectionNumber;
81 BYTE LastSectionNumber;
82 BYTE ProtocolDiscriminator;
83 BYTE DsmccType;
84 WORD MessageId;
85 DWORD TransactionId;
86 BYTE Reserved;
87 BYTE AdaptationLength;
88 WORD MessageLength;
89 BYTE RemainingData[1];
90} DSMCC_SECTION, *PDSMCC_SECTION;
91
92typedef struct _DVB_EIT_FILTER_OPTIONS {
93 WINBOOL fSpecifySegment;
94 BYTE bSegment;
95} DVB_EIT_FILTER_OPTIONS, *PDVB_EIT_FILTER_OPTIONS;
96
97typedef struct {
98 TID TableId;
99 __C89_NAMELESS union {
100 MPEG_HEADER_BITS_MIDL S;
101 WORD W;
102 } Header;
103 WORD TableIdExtension;
104 __C89_NAMELESS union {
105 MPEG_HEADER_VERSION_BITS_MIDL S;
106 BYTE B;
107 } Version;
108 BYTE SectionNumber;
109 BYTE LastSectionNumber;
110 BYTE RemainingData[1];
111} LONG_SECTION, *PLONG_SECTION;
112
113typedef struct _MPE_ELEMENT {
114 PID pid;
115 BYTE bComponentTag;
116 struct _MPE_ELEMENT *pNext;
117} MPE_ELEMENT, *PMPE_ELEMENT;
118
119typedef struct _MPEG2_FILTER {
120 BYTE bVersionNumber;
121 WORD wFilterSize;
122 WINBOOL fUseRawFilteringBits;
123 BYTE Filter[16];
124 BYTE Mask[16];
125 WINBOOL fSpecifyTableIdExtension;
126 WORD TableIdExtension;
127 WINBOOL fSpecifyVersion;
128 BYTE Version;
129 WINBOOL fSpecifySectionNumber;
130 BYTE SectionNumber;
131 WINBOOL fSpecifyCurrentNext;
132 WINBOOL fNext;
133 WINBOOL fSpecifyDsmccOptions;
134 DSMCC_FILTER_OPTIONS Dsmcc;
135 WINBOOL fSpecifyAtscOptions;
136 ATSC_FILTER_OPTIONS Atsc;
137} MPEG2_FILTER, *PMPEG2_FILTER;
138
139typedef struct {
140 BYTE bVersionNumber;
141 WORD wFilterSize;
142 WINBOOL fUseRawFilteringBits;
143 BYTE Filter[16];
144 BYTE Mask[16];
145 WINBOOL fSpecifyTableIdExtension;
146 WORD TableIdExtension;
147 WINBOOL fSpecifyVersion;
148 BYTE Version;
149 WINBOOL fSpecifySectionNumber;
150 BYTE SectionNumber;
151 WINBOOL fSpecifyCurrentNext;
152 WINBOOL fNext;
153 WINBOOL fSpecifyDsmccOptions;
154 DSMCC_FILTER_OPTIONS Dsmcc;
155 WINBOOL fSpecifyAtscOptions;
156 ATSC_FILTER_OPTIONS Atsc;
157 WINBOOL fSpecifyDvbEitOptions;
158 DVB_EIT_FILTER_OPTIONS Dvb_Eit;
159} MPEG2_FILTER2, *PMPEG2_FILTER2;
160
161typedef struct _MPEG_BCS_DEMUX {
162 DWORD AVMGraphId;
163} MPEG_BCS_DEMUX;
164
165typedef struct _MPEG_WINSOCK {
166 DWORD AVMGraphId;
167} MPEG_WINSOCK;
168
169typedef struct _MPEG_CONTEXT {
170 MPEG_CONTEXT_TYPE Type;
171 __C89_NAMELESS union {
172 MPEG_BCS_DEMUX Demux;
173 MPEG_WINSOCK Winsock;
174 } U;
175} MPEG_CONTEXT, *PMPEG_CONTEXT;
176
177typedef struct _MPEG_DATE {
178 BYTE Date;
179 BYTE Month;
180 WORD Year;
181} MPEG_DATE;
182
183typedef struct _MPEG_TIME {
184 BYTE Hours;
185 BYTE Minutes;
186 BYTE Seconds;
187} MPEG_TIME;
188
189typedef struct _MPEG_DATE_AND_TIME {
190 MPEG_DATE D;
191 MPEG_TIME T;
192} MPEG_DATE_AND_TIME;
193
194typedef MPEG_TIME MPEG_DURATION;
195
196typedef struct {
197 TID TableId;
198 __C89_NAMELESS union {
199 MPEG_HEADER_BITS_MIDL S;
200 WORD W;
201 } Header;
202 BYTE SectionData[1];
203} SECTION, *PSECTION;
204
205typedef struct _MPEG_RQST_PACKET {
206 DWORD dwLength;
207 PSECTION pSection;
208} MPEG_RQST_PACKET, *PMPEG_RQST_PACKET;
209
210typedef struct _MPEG_PACKET_LIST {
211 WORD wPacketCount;
212 PMPEG_RQST_PACKET PacketList[1];
213} MPEG_PACKET_LIST, *PMPEG_PACKET_LIST;
214
215typedef struct _MPEG_STREAM_BUFFER {
216 HRESULT hr;
217 DWORD dwDataBufferSize;
218 DWORD dwSizeOfDataRead;
219 BYTE *pDataBuffer;
220} MPEG_STREAM_BUFFER, *PMPEG_STREAM_BUFFER;
221
222#endif /*__INC_MPEG2STRUCTS__*/
Note: See TracBrowser for help on using the repository browser.