Mercurial > mplayer.hg
annotate loader/dmo/dmo_interfaces.h @ 29546:87b0995398b6
Support PCM in Bluray streams.
author | cehoyos |
---|---|
date | Sun, 30 Aug 2009 21:14:42 +0000 |
parents | a8ea87c71d18 |
children |
rev | line source |
---|---|
26045 | 1 #ifndef MPLAYER_DMO_INTERFACES_H |
2 #define MPLAYER_DMO_INTERFACES_H | |
8294 | 3 |
4 #include "dmo.h" | |
5 | |
6 /* | |
7 * IMediaBuffer interface | |
8 */ | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
9 typedef struct IMediaBuffer IMediaBuffer; |
8294 | 10 typedef struct IMediaBuffer_vt |
11 { | |
12 INHERIT_IUNKNOWN(); | |
13 | |
14 HRESULT STDCALL ( *SetLength )(IMediaBuffer* This, | |
15 unsigned long cbLength); | |
16 HRESULT STDCALL ( *GetMaxLength )(IMediaBuffer* This, | |
17 /* [out] */ unsigned long *pcbMaxLength); | |
18 HRESULT STDCALL ( *GetBufferAndLength )(IMediaBuffer* This, | |
19 /* [out] */ char** ppBuffer, | |
20 /* [out] */ unsigned long* pcbLength); | |
21 } IMediaBuffer_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
22 struct IMediaBuffer { IMediaBuffer_vt* vt; }; |
8294 | 23 |
24 | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
25 typedef struct DMO_OUTPUT_DATA_BUFFER |
8294 | 26 { |
27 IMediaBuffer *pBuffer; | |
28 unsigned long dwStatus; | |
29 REFERENCE_TIME rtTimestamp; | |
30 REFERENCE_TIME rtTimelength; | |
31 } DMO_OUTPUT_DATA_BUFFER; | |
32 | |
33 | |
34 /* | |
35 * IMediaObject interface | |
36 */ | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
37 typedef struct IMediaObject IMediaObject; |
8294 | 38 typedef struct IMediaObject_vt |
39 { | |
40 INHERIT_IUNKNOWN(); | |
41 | |
42 HRESULT STDCALL ( *GetStreamCount )(IMediaObject * This, | |
43 /* [out] */ unsigned long *pcInputStreams, | |
44 /* [out] */ unsigned long *pcOutputStreams); | |
45 HRESULT STDCALL ( *GetInputStreamInfo )(IMediaObject * This, | |
46 unsigned long dwInputStreamIndex, | |
47 /* [out] */ unsigned long *pdwFlags); | |
48 HRESULT STDCALL ( *GetOutputStreamInfo )(IMediaObject * This, | |
49 unsigned long dwOutputStreamIndex, | |
50 /* [out] */ unsigned long *pdwFlags); | |
51 HRESULT STDCALL ( *GetInputType )(IMediaObject * This, | |
52 unsigned long dwInputStreamIndex, | |
53 unsigned long dwTypeIndex, | |
54 /* [out] */ DMO_MEDIA_TYPE *pmt); | |
55 HRESULT STDCALL ( *GetOutputType )(IMediaObject * This, | |
56 unsigned long dwOutputStreamIndex, | |
57 unsigned long dwTypeIndex, | |
58 /* [out] */ DMO_MEDIA_TYPE *pmt); | |
59 HRESULT STDCALL ( *SetInputType )(IMediaObject * This, | |
60 unsigned long dwInputStreamIndex, | |
61 /* [in] */ const DMO_MEDIA_TYPE *pmt, | |
62 unsigned long dwFlags); | |
63 HRESULT STDCALL ( *SetOutputType )(IMediaObject * This, | |
64 unsigned long dwOutputStreamIndex, | |
65 /* [in] */ const DMO_MEDIA_TYPE *pmt, | |
66 unsigned long dwFlags); | |
67 HRESULT STDCALL ( *GetInputCurrentType )(IMediaObject * This, | |
68 unsigned long dwInputStreamIndex, | |
69 /* [out] */ DMO_MEDIA_TYPE *pmt); | |
70 HRESULT STDCALL ( *GetOutputCurrentType )(IMediaObject * This, | |
71 unsigned long dwOutputStreamIndex, | |
72 /* [out] */ DMO_MEDIA_TYPE *pmt); | |
73 HRESULT STDCALL ( *GetInputSizeInfo )(IMediaObject * This, | |
74 unsigned long dwInputStreamIndex, | |
75 /* [out] */ unsigned long *pcbSize, | |
76 /* [out] */ unsigned long *pcbMaxLookahead, | |
77 /* [out] */ unsigned long *pcbAlignment); | |
78 HRESULT STDCALL ( *GetOutputSizeInfo )(IMediaObject * This, | |
79 unsigned long dwOutputStreamIndex, | |
80 /* [out] */ unsigned long *pcbSize, | |
81 /* [out] */ unsigned long *pcbAlignment); | |
82 HRESULT STDCALL ( *GetInputMaxLatency )(IMediaObject * This, | |
83 unsigned long dwInputStreamIndex, | |
84 /* [out] */ REFERENCE_TIME *prtMaxLatency); | |
85 HRESULT STDCALL ( *SetInputMaxLatency )(IMediaObject * This, | |
86 unsigned long dwInputStreamIndex, | |
87 REFERENCE_TIME rtMaxLatency); | |
88 HRESULT STDCALL ( *Flush )(IMediaObject * This); | |
89 HRESULT STDCALL ( *Discontinuity )(IMediaObject * This, | |
90 unsigned long dwInputStreamIndex); | |
91 HRESULT STDCALL ( *AllocateStreamingResources )(IMediaObject * This); | |
92 HRESULT STDCALL ( *FreeStreamingResources )(IMediaObject * This); | |
93 HRESULT STDCALL ( *GetInputStatus )(IMediaObject * This, | |
94 unsigned long dwInputStreamIndex, | |
95 /* [out] */ unsigned long *dwFlags); | |
96 HRESULT STDCALL ( *ProcessInput )(IMediaObject * This, | |
97 unsigned long dwInputStreamIndex, | |
98 IMediaBuffer *pBuffer, | |
99 unsigned long dwFlags, | |
100 REFERENCE_TIME rtTimestamp, | |
101 REFERENCE_TIME rtTimelength); | |
102 HRESULT STDCALL ( *ProcessOutput )(IMediaObject * This, | |
103 unsigned long dwFlags, | |
104 unsigned long cOutputBufferCount, | |
105 /* [size_is][out][in] */ DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, | |
106 /* [out] */ unsigned long *pdwStatus); | |
107 HRESULT STDCALL ( *Lock )(IMediaObject * This, long bLock); | |
108 } IMediaObject_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
109 struct IMediaObject { IMediaObject_vt* vt; }; |
8294 | 110 |
111 /* | |
112 * IEnumDMO interface | |
113 */ | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
114 typedef struct IEnumDMO IEnumDMO; |
8294 | 115 typedef struct IEnumDMO_vt |
116 { | |
117 INHERIT_IUNKNOWN(); | |
118 | |
119 HRESULT STDCALL ( *Next )(IEnumDMO * This, | |
120 unsigned long cItemsToFetch, | |
121 /* [length_is][size_is][out] */ CLSID *pCLSID, | |
122 /* [string][length_is][size_is][out] */ WCHAR **Names, | |
123 /* [out] */ unsigned long *pcItemsFetched); | |
124 HRESULT STDCALL ( *Skip )(IEnumDMO * This, | |
125 unsigned long cItemsToSkip); | |
126 HRESULT STDCALL ( *Reset )(IEnumDMO * This); | |
127 HRESULT STDCALL ( *Clone )(IEnumDMO * This, | |
128 /* [out] */ IEnumDMO **ppEnum); | |
129 } IEnumDMO_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
130 struct IEnumDMO { IEnumDMO_vt* vt; }; |
8294 | 131 |
132 /* | |
133 * IMediaObjectInPlace interface | |
134 */ | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
135 typedef struct IMediaObjectInPlace IMediaObjectInPlace; |
8294 | 136 typedef struct IMediaObjectInPlace_vt |
137 { | |
138 INHERIT_IUNKNOWN(); | |
139 | |
140 HRESULT STDCALL ( *Process )(IMediaObjectInPlace * This, | |
141 /* [in] */ unsigned long ulSize, | |
142 /* [size_is][out][in] */ BYTE *pData, | |
143 /* [in] */ REFERENCE_TIME refTimeStart, | |
144 /* [in] */ unsigned long dwFlags); | |
145 HRESULT STDCALL ( *Clone )(IMediaObjectInPlace * This, | |
146 /* [out] */ IMediaObjectInPlace **ppMediaObject); | |
147 HRESULT STDCALL ( *GetLatency )(IMediaObjectInPlace * This, | |
148 /* [out] */ REFERENCE_TIME *pLatencyTime); | |
149 | |
150 } IMediaObjectInPlace_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
151 struct IMediaObjectInPlace { IMediaObjectInPlace_vt* vt; }; |
8294 | 152 |
153 | |
154 /* | |
155 * IDMOQualityControl interface | |
156 */ | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
157 typedef struct IDMOQualityControl IDMOQualityControl; |
8294 | 158 typedef struct IDMOQualityControl_vt |
159 { | |
160 INHERIT_IUNKNOWN(); | |
161 | |
162 HRESULT STDCALL ( *SetNow )(IDMOQualityControl * This, | |
163 /* [in] */ REFERENCE_TIME rtNow); | |
164 HRESULT STDCALL ( *SetStatus )(IDMOQualityControl * This, | |
165 /* [in] */ unsigned long dwFlags); | |
166 HRESULT STDCALL ( *GetStatus )(IDMOQualityControl * This, | |
167 /* [out] */ unsigned long *pdwFlags); | |
168 } IDMOQualityControl_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
169 struct IDMOQualityControl { IDMOQualityControl_vt* vt; }; |
8294 | 170 |
171 /* | |
172 * IDMOVideoOutputOptimizations interface | |
173 */ | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
174 typedef struct IDMOVideoOutputOptimizations IDMOVideoOutputOptimizations; |
8294 | 175 typedef struct IDMOVideoOutputOptimizations_vt |
176 { | |
177 INHERIT_IUNKNOWN(); | |
178 | |
179 HRESULT STDCALL ( *QueryOperationModePreferences )(IDMOVideoOutputOptimizations * This, | |
180 unsigned long ulOutputStreamIndex, | |
181 unsigned long *pdwRequestedCapabilities); | |
182 HRESULT STDCALL ( *SetOperationMode )(IDMOVideoOutputOptimizations * This, | |
183 unsigned long ulOutputStreamIndex, | |
184 unsigned long dwEnabledFeatures); | |
185 HRESULT STDCALL ( *GetCurrentOperationMode )(IDMOVideoOutputOptimizations * This, | |
186 unsigned long ulOutputStreamIndex, | |
187 unsigned long *pdwEnabledFeatures); | |
188 HRESULT STDCALL ( *GetCurrentSampleRequirements )(IDMOVideoOutputOptimizations * This, | |
189 unsigned long ulOutputStreamIndex, | |
190 unsigned long *pdwRequestedFeatures); | |
191 } IDMOVideoOutputOptimizations_vt; | |
25794
2c8cdb9123b8
Fix a ton of illegal identifiers. Identifiers starting with __ or _ and a
diego
parents:
8294
diff
changeset
|
192 struct IDMOVideoOutputOptimizations { IDMOVideoOutputOptimizations_vt* vt; }; |
8294 | 193 |
26045 | 194 #endif /* MPLAYER_DMO_INTERFACES_H */ |