Mercurial > mplayer.hg
annotate loader/dmo/dmo_interfaces.h @ 33874:e1bec41397bb
Don't let VCD track number and guiInfo.Track differ.
Internally use guiInfo.Track for the track without offset now and
externally speak of "titles" to the user. The titles are given minus
the VCD metadata track. (The dynamic label variable $t isn't affected.)
This also fixes some strange behavior when using the prev/next buttons
when no VCD could be loaded.
Rename MSGTR_VCDTrack MSGTR_Title to reflect the change.
author | ib |
---|---|
date | Wed, 10 Aug 2011 14:48:49 +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 */ |