Mercurial > mplayer.hg
annotate loader/dshow/interfaces.h @ 28340:b0af9b4b5015
Replace a bunch of '#if HAVE_FOO' preprocessor checks by 'if (HAVE_FOO)'.
author | diego |
---|---|
date | Mon, 26 Jan 2009 11:24:05 +0000 |
parents | a8ea87c71d18 |
children | 008338d7679f |
rev | line source |
---|---|
26045 | 1 #ifndef MPLAYER_INTERFACES_H |
2 #define MPLAYER_INTERFACES_H | |
1545 | 3 |
168 | 4 /* |
7386 | 5 * Definition of important DirectShow interfaces. |
6 * Created using freely-available DirectX 8.0 SDK | |
7 * ( http://msdn.microsoft.com ) | |
8 */ | |
168 | 9 |
3056 | 10 #include "iunk.h" |
2069 | 11 #include "com.h" |
1545 | 12 |
168 | 13 /* Sh*t. MSVC++ and g++ use different methods of storing vtables. */ |
14 | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
15 typedef struct IReferenceClock IReferenceClock; |
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
16 typedef struct IFilterGraph IFilterGraph; |
168 | 17 |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
18 typedef struct IBaseFilter IBaseFilter; |
7386 | 19 |
20 typedef enum | |
21 { | |
22 PINDIR_INPUT = 0, | |
23 PINDIR_OUTPUT | |
24 } PIN_DIRECTION; | |
25 | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
26 typedef struct PinInfo |
7386 | 27 { |
28 IBaseFilter* pFilter; | |
29 PIN_DIRECTION dir; | |
30 unsigned short achName[128]; | |
31 } PIN_INFO; | |
32 | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
33 typedef struct AllocatorProperties |
7386 | 34 { |
35 long cBuffers; | |
36 long cbBuffer; | |
37 long cbAlign; | |
38 long cbPrefix; | |
39 } ALLOCATOR_PROPERTIES; | |
168 | 40 |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
41 typedef struct IEnumMediaTypes IEnumMediaTypes; |
3056 | 42 typedef struct IEnumMediaTypes_vt |
168 | 43 { |
3056 | 44 INHERIT_IUNKNOWN(); |
168 | 45 |
3056 | 46 HRESULT STDCALL ( *Next )(IEnumMediaTypes* This, |
47 /* [in] */ unsigned long cMediaTypes, | |
48 /* [size_is][out] */ AM_MEDIA_TYPE** ppMediaTypes, | |
49 /* [out] */ unsigned long* pcFetched); | |
50 HRESULT STDCALL ( *Skip )(IEnumMediaTypes* This, | |
51 /* [in] */ unsigned long cMediaTypes); | |
52 HRESULT STDCALL ( *Reset )(IEnumMediaTypes* This); | |
53 HRESULT STDCALL ( *Clone )(IEnumMediaTypes* This, | |
54 /* [out] */ IEnumMediaTypes** ppEnum); | |
55 } IEnumMediaTypes_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
56 struct IEnumMediaTypes { IEnumMediaTypes_vt* vt; }; |
168 | 57 |
1545 | 58 |
3056 | 59 |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
60 typedef struct IPin IPin; |
3056 | 61 typedef struct IPin_vt |
168 | 62 { |
3056 | 63 INHERIT_IUNKNOWN(); |
168 | 64 |
1545 | 65 HRESULT STDCALL ( *Connect )(IPin * This, |
66 /* [in] */ IPin *pReceivePin, | |
67 /* [in] */ /*const*/ AM_MEDIA_TYPE *pmt); | |
68 HRESULT STDCALL ( *ReceiveConnection )(IPin * This, | |
69 /* [in] */ IPin *pConnector, | |
70 /* [in] */ const AM_MEDIA_TYPE *pmt); | |
71 HRESULT STDCALL ( *Disconnect )(IPin * This); | |
72 HRESULT STDCALL ( *ConnectedTo )(IPin * This, /* [out] */ IPin **pPin); | |
73 HRESULT STDCALL ( *ConnectionMediaType )(IPin * This, | |
74 /* [out] */ AM_MEDIA_TYPE *pmt); | |
75 HRESULT STDCALL ( *QueryPinInfo )(IPin * This, /* [out] */ PIN_INFO *pInfo); | |
76 HRESULT STDCALL ( *QueryDirection )(IPin * This, | |
77 /* [out] */ PIN_DIRECTION *pPinDir); | |
78 HRESULT STDCALL ( *QueryId )(IPin * This, /* [out] */ unsigned short* *Id); | |
79 HRESULT STDCALL ( *QueryAccept )(IPin * This, | |
80 /* [in] */ const AM_MEDIA_TYPE *pmt); | |
81 HRESULT STDCALL ( *EnumMediaTypes )(IPin * This, | |
82 /* [out] */ IEnumMediaTypes **ppEnum); | |
83 HRESULT STDCALL ( *QueryInternalConnections )(IPin * This, | |
84 /* [out] */ IPin **apPin, | |
85 /* [out][in] */ unsigned long *nPin); | |
86 HRESULT STDCALL ( *EndOfStream )(IPin * This); | |
87 HRESULT STDCALL ( *BeginFlush )(IPin * This); | |
88 HRESULT STDCALL ( *EndFlush )(IPin * This); | |
89 HRESULT STDCALL ( *NewSegment )(IPin * This, | |
90 /* [in] */ REFERENCE_TIME tStart, | |
91 /* [in] */ REFERENCE_TIME tStop, | |
92 /* [in] */ double dRate); | |
3056 | 93 } IPin_vt; |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
94 struct IPin { IPin_vt *vt; }; |
3056 | 95 |
96 | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
97 typedef struct IEnumPins IEnumPins; |
3056 | 98 typedef struct IEnumPins_vt |
99 { | |
100 INHERIT_IUNKNOWN(); | |
101 | |
3467 | 102 // retrieves a specified number of pins in the enumeration sequence.. |
3056 | 103 HRESULT STDCALL ( *Next )(IEnumPins* This, |
104 /* [in] */ unsigned long cPins, | |
105 /* [size_is][out] */ IPin** ppPins, | |
106 /* [out] */ unsigned long* pcFetched); | |
3467 | 107 // skips over a specified number of pins. |
3056 | 108 HRESULT STDCALL ( *Skip )(IEnumPins* This, |
109 /* [in] */ unsigned long cPins); | |
3467 | 110 // resets the enumeration sequence to the beginning. |
3056 | 111 HRESULT STDCALL ( *Reset )(IEnumPins* This); |
3467 | 112 // makes a copy of the enumerator with the same enumeration state. |
3056 | 113 HRESULT STDCALL ( *Clone )(IEnumPins* This, |
114 /* [out] */ IEnumPins** ppEnum); | |
115 } IEnumPins_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
116 struct IEnumPins { struct IEnumPins_vt* vt; }; |
3056 | 117 |
118 | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
119 typedef struct IMediaSample IMediaSample; |
3056 | 120 typedef struct IMediaSample_vt |
121 { | |
122 INHERIT_IUNKNOWN(); | |
168 | 123 |
3056 | 124 HRESULT STDCALL ( *GetPointer )(IMediaSample* This, |
125 /* [out] */ unsigned char** ppBuffer); | |
126 LONG STDCALL ( *GetSize )(IMediaSample* This); | |
127 HRESULT STDCALL ( *GetTime )(IMediaSample* This, | |
128 /* [out] */ REFERENCE_TIME* pTimeStart, | |
129 /* [out] */ REFERENCE_TIME* pTimeEnd); | |
130 HRESULT STDCALL ( *SetTime )(IMediaSample* This, | |
131 /* [in] */ REFERENCE_TIME* pTimeStart, | |
132 /* [in] */ REFERENCE_TIME* pTimeEnd); | |
3467 | 133 |
134 // sync-point property. If true, then the beginning of this | |
135 // sample is a sync-point. (note that if AM_MEDIA_TYPE.bTemporalCompression | |
136 // is false then all samples are sync points). A filter can start | |
137 // a stream at any sync point. S_FALSE if not sync-point, S_OK if true. | |
3056 | 138 HRESULT STDCALL ( *IsSyncPoint )(IMediaSample* This); |
139 HRESULT STDCALL ( *SetSyncPoint )(IMediaSample* This, | |
140 long bIsSyncPoint); | |
3467 | 141 |
142 // preroll property. If true, this sample is for preroll only and | |
143 // shouldn't be displayed. | |
3056 | 144 HRESULT STDCALL ( *IsPreroll )(IMediaSample* This); |
145 HRESULT STDCALL ( *SetPreroll )(IMediaSample* This, | |
146 long bIsPreroll); | |
3467 | 147 |
3056 | 148 LONG STDCALL ( *GetActualDataLength )(IMediaSample* This); |
149 HRESULT STDCALL ( *SetActualDataLength )(IMediaSample* This, | |
150 long __MIDL_0010); | |
3467 | 151 |
152 // these allow for limited format changes in band - if no format change | |
153 // has been made when you receive a sample GetMediaType will return S_FALSE | |
3056 | 154 HRESULT STDCALL ( *GetMediaType )(IMediaSample* This, |
155 AM_MEDIA_TYPE** ppMediaType); | |
156 HRESULT STDCALL ( *SetMediaType )(IMediaSample* This, | |
157 AM_MEDIA_TYPE* pMediaType); | |
3467 | 158 |
159 // returns S_OK if there is a discontinuity in the data (this frame is | |
160 // not a continuation of the previous stream of data | |
161 // - there has been a seek or some dropped samples). | |
3056 | 162 HRESULT STDCALL ( *IsDiscontinuity )(IMediaSample* This); |
163 HRESULT STDCALL ( *SetDiscontinuity )(IMediaSample* This, | |
164 long bDiscontinuity); | |
3467 | 165 |
166 // get the media times for this sample | |
3056 | 167 HRESULT STDCALL ( *GetMediaTime )(IMediaSample* This, |
168 /* [out] */ long long* pTimeStart, | |
169 /* [out] */ long long* pTimeEnd); | |
3467 | 170 // Set the media times for this sample |
171 // pTimeStart==pTimeEnd==NULL will invalidate the media time stamps in | |
172 // this sample | |
3056 | 173 HRESULT STDCALL ( *SetMediaTime )(IMediaSample* This, |
174 /* [in] */ long long* pTimeStart, | |
175 /* [in] */ long long* pTimeEnd); | |
176 } IMediaSample_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
177 struct IMediaSample { struct IMediaSample_vt* vt; }; |
3056 | 178 |
168 | 179 |
1545 | 180 |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
181 //typedef struct IBaseFilter IBaseFilter; |
3056 | 182 typedef struct IBaseFilter_vt |
168 | 183 { |
3056 | 184 INHERIT_IUNKNOWN(); |
168 | 185 |
3056 | 186 HRESULT STDCALL ( *GetClassID )(IBaseFilter * This, |
187 /* [out] */ CLSID *pClassID); | |
188 HRESULT STDCALL ( *Stop )(IBaseFilter * This); | |
189 HRESULT STDCALL ( *Pause )(IBaseFilter * This); | |
190 HRESULT STDCALL ( *Run )(IBaseFilter * This, | |
191 REFERENCE_TIME tStart); | |
192 HRESULT STDCALL ( *GetState )(IBaseFilter * This, | |
193 /* [in] */ unsigned long dwMilliSecsTimeout, | |
194 ///* [out] */ FILTER_STATE *State); | |
195 void* State); | |
196 HRESULT STDCALL ( *SetSyncSource )(IBaseFilter* This, | |
197 /* [in] */ IReferenceClock *pClock); | |
198 HRESULT STDCALL ( *GetSyncSource )(IBaseFilter* This, | |
199 /* [out] */ IReferenceClock **pClock); | |
200 HRESULT STDCALL ( *EnumPins )(IBaseFilter* This, | |
201 /* [out] */ IEnumPins **ppEnum); | |
202 HRESULT STDCALL ( *FindPin )(IBaseFilter* This, | |
203 /* [string][in] */ const unsigned short* Id, | |
204 /* [out] */ IPin** ppPin); | |
205 HRESULT STDCALL ( *QueryFilterInfo )(IBaseFilter* This, | |
206 // /* [out] */ FILTER_INFO *pInfo); | |
207 void* pInfo); | |
208 HRESULT STDCALL ( *JoinFilterGraph )(IBaseFilter* This, | |
209 /* [in] */ IFilterGraph* pGraph, | |
210 /* [string][in] */ const unsigned short* pName); | |
211 HRESULT STDCALL ( *QueryVendorInfo )(IBaseFilter* This, | |
212 /* [string][out] */ unsigned short** pVendorInfo); | |
213 } IBaseFilter_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
214 struct IBaseFilter { struct IBaseFilter_vt* vt; }; |
168 | 215 |
1545 | 216 |
3056 | 217 |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
218 typedef struct IMemAllocator IMemAllocator; |
3056 | 219 typedef struct IMemAllocator_vt |
168 | 220 { |
3056 | 221 INHERIT_IUNKNOWN(); |
222 | |
3467 | 223 // specifies the number of buffers to allocate and the size of each buffer. |
3056 | 224 HRESULT STDCALL ( *SetProperties )(IMemAllocator* This, |
225 /* [in] */ ALLOCATOR_PROPERTIES *pRequest, | |
226 /* [out] */ ALLOCATOR_PROPERTIES *pActual); | |
3467 | 227 // retrieves the number of buffers that the allocator will create, and the buffer properties. |
3056 | 228 HRESULT STDCALL ( *GetProperties )(IMemAllocator* This, |
229 /* [out] */ ALLOCATOR_PROPERTIES *pProps); | |
3467 | 230 // allocates the buffer memory. |
3056 | 231 HRESULT STDCALL ( *Commit )(IMemAllocator* This); |
3467 | 232 // releases the memory for the buffers. |
3056 | 233 HRESULT STDCALL ( *Decommit )(IMemAllocator* This); |
3467 | 234 // retrieves a media sample that contains an empty buffer. |
3056 | 235 HRESULT STDCALL ( *GetBuffer )(IMemAllocator* This, |
236 /* [out] */ IMediaSample** ppBuffer, | |
237 /* [in] */ REFERENCE_TIME* pStartTime, | |
238 /* [in] */ REFERENCE_TIME* pEndTime, | |
239 /* [in] */ unsigned long dwFlags); | |
3467 | 240 // releases a media sample. |
3056 | 241 HRESULT STDCALL ( *ReleaseBuffer )(IMemAllocator* This, |
242 /* [in] */ IMediaSample* pBuffer); | |
243 } IMemAllocator_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
244 struct IMemAllocator { IMemAllocator_vt* vt; }; |
3056 | 245 |
246 | |
247 | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
248 typedef struct IMemInputPin IMemInputPin; |
3056 | 249 typedef struct IMemInputPin_vt |
250 { | |
251 INHERIT_IUNKNOWN(); | |
252 | |
1545 | 253 HRESULT STDCALL ( *GetAllocator )(IMemInputPin * This, |
254 /* [out] */ IMemAllocator **ppAllocator); | |
255 HRESULT STDCALL ( *NotifyAllocator )(IMemInputPin * This, | |
256 /* [in] */ IMemAllocator *pAllocator, | |
257 /* [in] */ int bReadOnly); | |
258 HRESULT STDCALL ( *GetAllocatorRequirements )(IMemInputPin * This, | |
259 /* [out] */ ALLOCATOR_PROPERTIES *pProps); | |
260 HRESULT STDCALL ( *Receive )(IMemInputPin * This, | |
261 /* [in] */ IMediaSample *pSample); | |
262 HRESULT STDCALL ( *ReceiveMultiple )(IMemInputPin * This, | |
263 /* [size_is][in] */ IMediaSample **pSamples, | |
264 /* [in] */ long nSamples, | |
265 /* [out] */ long *nSamplesProcessed); | |
266 HRESULT STDCALL ( *ReceiveCanBlock )(IMemInputPin * This); | |
3056 | 267 } IMemInputPin_vt; |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
268 struct IMemInputPin { IMemInputPin_vt* vt; }; |
168 | 269 |
270 | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
271 typedef struct IHidden IHidden; |
3056 | 272 typedef struct IHidden_vt |
168 | 273 { |
3056 | 274 INHERIT_IUNKNOWN(); |
168 | 275 |
3056 | 276 HRESULT STDCALL ( *GetSmth )(IHidden* This, int* pv); |
277 HRESULT STDCALL ( *SetSmth )(IHidden* This, int v1, int v2); | |
278 HRESULT STDCALL ( *GetSmth2 )(IHidden* This, int* pv); | |
279 HRESULT STDCALL ( *SetSmth2 )(IHidden* This, int v1, int v2); | |
280 HRESULT STDCALL ( *GetSmth3 )(IHidden* This, int* pv); | |
281 HRESULT STDCALL ( *SetSmth3 )(IHidden* This, int v1, int v2); | |
282 HRESULT STDCALL ( *GetSmth4 )(IHidden* This, int* pv); | |
283 HRESULT STDCALL ( *SetSmth4 )(IHidden* This, int v1, int v2); | |
284 HRESULT STDCALL ( *GetSmth5 )(IHidden* This, int* pv); | |
285 HRESULT STDCALL ( *SetSmth5 )(IHidden* This, int v1, int v2); | |
286 HRESULT STDCALL ( *GetSmth6 )(IHidden* This, int* pv); | |
287 } IHidden_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
288 struct IHidden { struct IHidden_vt* vt; }; |
168 | 289 |
1545 | 290 |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
291 typedef struct IHidden2 IHidden2; |
3056 | 292 typedef struct IHidden2_vt |
168 | 293 { |
3056 | 294 INHERIT_IUNKNOWN(); |
168 | 295 |
3056 | 296 HRESULT STDCALL ( *unk1 )(void); |
297 HRESULT STDCALL ( *unk2 )(void); | |
298 HRESULT STDCALL ( *unk3 )(void); | |
299 HRESULT STDCALL ( *DecodeGet )(IHidden2* This, int* region); | |
300 HRESULT STDCALL ( *unk5 )(void); | |
301 HRESULT STDCALL ( *DecodeSet )(IHidden2* This, int* region); | |
302 HRESULT STDCALL ( *unk7 )(void); | |
303 HRESULT STDCALL ( *unk8 )(void); | |
304 } IHidden2_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
7386
diff
changeset
|
305 struct IHidden2 { struct IHidden2_vt* vt; }; |
168 | 306 |
1545 | 307 |
3056 | 308 // fixme |
309 typedef struct IDivxFilterInterface { | |
310 struct IDivxFilterInterface_vt* vt; | |
311 } IDivxFilterInterface; | |
1545 | 312 |
3056 | 313 struct IDivxFilterInterface_vt |
168 | 314 { |
3056 | 315 INHERIT_IUNKNOWN(); |
168 | 316 |
3056 | 317 HRESULT STDCALL ( *get_PPLevel )(IDivxFilterInterface* This, int* PPLevel); // current postprocessing level |
318 HRESULT STDCALL ( *put_PPLevel )(IDivxFilterInterface* This, int PPLevel); // new postprocessing level | |
319 HRESULT STDCALL ( *put_DefaultPPLevel )(IDivxFilterInterface* This); | |
320 HRESULT STDCALL ( *put_MaxDelayAllowed )(IDivxFilterInterface* This, int maxdelayallowed); | |
321 HRESULT STDCALL ( *put_Brightness )(IDivxFilterInterface* This, int brightness); | |
322 HRESULT STDCALL ( *put_Contrast )(IDivxFilterInterface* This, int contrast); | |
323 HRESULT STDCALL ( *put_Saturation )(IDivxFilterInterface* This, int saturation); | |
324 HRESULT STDCALL ( *get_MaxDelayAllowed )(IDivxFilterInterface* This, int* maxdelayallowed); | |
325 HRESULT STDCALL ( *get_Brightness)(IDivxFilterInterface* This, int* brightness); | |
326 HRESULT STDCALL ( *get_Contrast)(IDivxFilterInterface* This, int* contrast); | |
327 HRESULT STDCALL ( *get_Saturation )(IDivxFilterInterface* This, int* saturation); | |
328 HRESULT STDCALL ( *put_AspectRatio )(IDivxFilterInterface* This, int x, IDivxFilterInterface* Thisit, int y); | |
329 HRESULT STDCALL ( *get_AspectRatio )(IDivxFilterInterface* This, int* x, IDivxFilterInterface* Thisit, int* y); | |
168 | 330 }; |
1545 | 331 |
26045 | 332 #endif /*MPLAYER_INTERFACES_H */ |