xine-lib: xine-lib-1.2.12/src/libw32dll/dmo/dmo_interfaces.h Source File

xine-lib 1.2.12

dmo_interfaces.h
Go to the documentation of this file.
1#ifndef DMO_INTERFACE_H
2#define DMO_INTERFACE_H
3
4#include "dmo.h"
5
6/*
7 * IMediaBuffer interface
8 */
9 typedef struct _IMediaBuffer IMediaBuffer;
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;
22 struct _IMediaBuffer { IMediaBuffer_vt* vt; };
23
24
25 typedef struct _DMO_OUTPUT_DATA_BUFFER
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 */
37 typedef struct _IMediaObject IMediaObject;
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;
109 struct _IMediaObject { IMediaObject_vt* vt; };
110
111/*
112 * IEnumDMO interface
113 */
114 typedef struct _IEnumDMO IEnumDMO;
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;
130 struct _IEnumDMO { IEnumDMO_vt* vt; };
131
132/*
133 * IMediaObjectInPlace interface
134 */
135 typedef struct _IMediaObjectInPlace IMediaObjectInPlace;
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;
151 struct _IMediaObjectInPlace { IMediaObjectInPlace_vt* vt; };
152
153
154/*
155 * IDMOQualityControl interface
156 */
157 typedef struct _IDMOQualityControl IDMOQualityControl;
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;
169 struct _IDMOQualityControl { IDMOQualityControl_vt* vt; };
170
171/*
172 * IDMOVideoOutputOptimizations interface
173 */
174 typedef struct _IDMOVideoOutputOptimizations IDMOVideoOutputOptimizations;
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;
192 struct _IDMOVideoOutputOptimizations { IDMOVideoOutputOptimizations_vt* vt; };
193
194#endif /* DMO_INTERFACE_H */
dmo.h
DMO_MEDIA_TYPE
AM_MEDIA_TYPE DMO_MEDIA_TYPE
Definition: dmo.h:15
DMO_OUTPUT_DATA_BUFFER
struct _DMO_OUTPUT_DATA_BUFFER DMO_OUTPUT_DATA_BUFFER
REFERENCE_TIME
long long REFERENCE_TIME
Definition: guids.h:25
CLSID
GUID CLSID
Definition: guids.h:43
IDMOQualityControl_vt
Definition: dmo_interfaces.h:159
IDMOQualityControl_vt::INHERIT_IUNKNOWN
INHERIT_IUNKNOWN()
IDMOQualityControl_vt::GetStatus
HRESULT STDCALL(* GetStatus)(IDMOQualityControl *This, unsigned long *pdwFlags)
Definition: dmo_interfaces.h:166
IDMOQualityControl_vt::SetStatus
HRESULT STDCALL(* SetStatus)(IDMOQualityControl *This, unsigned long dwFlags)
Definition: dmo_interfaces.h:164
IDMOQualityControl_vt::SetNow
HRESULT STDCALL(* SetNow)(IDMOQualityControl *This, REFERENCE_TIME rtNow)
Definition: dmo_interfaces.h:162
IDMOVideoOutputOptimizations_vt
Definition: dmo_interfaces.h:176
IDMOVideoOutputOptimizations_vt::QueryOperationModePreferences
HRESULT STDCALL(* QueryOperationModePreferences)(IDMOVideoOutputOptimizations *This, unsigned long ulOutputStreamIndex, unsigned long *pdwRequestedCapabilities)
Definition: dmo_interfaces.h:179
IDMOVideoOutputOptimizations_vt::INHERIT_IUNKNOWN
INHERIT_IUNKNOWN()
IDMOVideoOutputOptimizations_vt::GetCurrentOperationMode
HRESULT STDCALL(* GetCurrentOperationMode)(IDMOVideoOutputOptimizations *This, unsigned long ulOutputStreamIndex, unsigned long *pdwEnabledFeatures)
Definition: dmo_interfaces.h:185
IDMOVideoOutputOptimizations_vt::GetCurrentSampleRequirements
HRESULT STDCALL(* GetCurrentSampleRequirements)(IDMOVideoOutputOptimizations *This, unsigned long ulOutputStreamIndex, unsigned long *pdwRequestedFeatures)
Definition: dmo_interfaces.h:188
IDMOVideoOutputOptimizations_vt::SetOperationMode
HRESULT STDCALL(* SetOperationMode)(IDMOVideoOutputOptimizations *This, unsigned long ulOutputStreamIndex, unsigned long dwEnabledFeatures)
Definition: dmo_interfaces.h:182
IEnumDMO_vt
Definition: dmo_interfaces.h:116
IEnumDMO_vt::INHERIT_IUNKNOWN
INHERIT_IUNKNOWN()
IEnumDMO_vt::Skip
HRESULT STDCALL(* Skip)(IEnumDMO *This, unsigned long cItemsToSkip)
Definition: dmo_interfaces.h:124
IEnumDMO_vt::Reset
HRESULT STDCALL(* Reset)(IEnumDMO *This)
Definition: dmo_interfaces.h:126
IEnumDMO_vt::Next
HRESULT STDCALL(* Next)(IEnumDMO *This, unsigned long cItemsToFetch, CLSID *pCLSID, WCHAR **Names, unsigned long *pcItemsFetched)
Definition: dmo_interfaces.h:119
IEnumDMO_vt::Clone
HRESULT STDCALL(* Clone)(IEnumDMO *This, IEnumDMO **ppEnum)
Definition: dmo_interfaces.h:127
IMediaBuffer_vt
Definition: dmo_interfaces.h:11
IMediaBuffer_vt::INHERIT_IUNKNOWN
INHERIT_IUNKNOWN()
IMediaBuffer_vt::GetBufferAndLength
HRESULT STDCALL(* GetBufferAndLength)(IMediaBuffer *This, char **ppBuffer, unsigned long *pcbLength)
Definition: dmo_interfaces.h:18
IMediaBuffer_vt::GetMaxLength
HRESULT STDCALL(* GetMaxLength)(IMediaBuffer *This, unsigned long *pcbMaxLength)
Definition: dmo_interfaces.h:16
IMediaBuffer_vt::SetLength
HRESULT STDCALL(* SetLength)(IMediaBuffer *This, unsigned long cbLength)
Definition: dmo_interfaces.h:14
IMediaObjectInPlace_vt
Definition: dmo_interfaces.h:137
IMediaObjectInPlace_vt::INHERIT_IUNKNOWN
INHERIT_IUNKNOWN()
IMediaObjectInPlace_vt::Process
HRESULT STDCALL(* Process)(IMediaObjectInPlace *This, unsigned long ulSize, BYTE *pData, REFERENCE_TIME refTimeStart, unsigned long dwFlags)
Definition: dmo_interfaces.h:140
IMediaObjectInPlace_vt::Clone
HRESULT STDCALL(* Clone)(IMediaObjectInPlace *This, IMediaObjectInPlace **ppMediaObject)
Definition: dmo_interfaces.h:145
IMediaObjectInPlace_vt::GetLatency
HRESULT STDCALL(* GetLatency)(IMediaObjectInPlace *This, REFERENCE_TIME *pLatencyTime)
Definition: dmo_interfaces.h:147
IMediaObject_vt
Definition: dmo_interfaces.h:39
IMediaObject_vt::SetInputMaxLatency
HRESULT STDCALL(* SetInputMaxLatency)(IMediaObject *This, unsigned long dwInputStreamIndex, REFERENCE_TIME rtMaxLatency)
Definition: dmo_interfaces.h:85
IMediaObject_vt::GetInputStatus
HRESULT STDCALL(* GetInputStatus)(IMediaObject *This, unsigned long dwInputStreamIndex, unsigned long *dwFlags)
Definition: dmo_interfaces.h:93
IMediaObject_vt::Lock
HRESULT STDCALL(* Lock)(IMediaObject *This, long bLock)
Definition: dmo_interfaces.h:107
IMediaObject_vt::AllocateStreamingResources
HRESULT STDCALL(* AllocateStreamingResources)(IMediaObject *This)
Definition: dmo_interfaces.h:91
IMediaObject_vt::GetInputStreamInfo
HRESULT STDCALL(* GetInputStreamInfo)(IMediaObject *This, unsigned long dwInputStreamIndex, unsigned long *pdwFlags)
Definition: dmo_interfaces.h:45
IMediaObject_vt::Flush
HRESULT STDCALL(* Flush)(IMediaObject *This)
Definition: dmo_interfaces.h:88
IMediaObject_vt::FreeStreamingResources
HRESULT STDCALL(* FreeStreamingResources)(IMediaObject *This)
Definition: dmo_interfaces.h:92
IMediaObject_vt::GetStreamCount
HRESULT STDCALL(* GetStreamCount)(IMediaObject *This, unsigned long *pcInputStreams, unsigned long *pcOutputStreams)
Definition: dmo_interfaces.h:42
IMediaObject_vt::GetOutputType
HRESULT STDCALL(* GetOutputType)(IMediaObject *This, unsigned long dwOutputStreamIndex, unsigned long dwTypeIndex, DMO_MEDIA_TYPE *pmt)
Definition: dmo_interfaces.h:55
IMediaObject_vt::GetInputCurrentType
HRESULT STDCALL(* GetInputCurrentType)(IMediaObject *This, unsigned long dwInputStreamIndex, DMO_MEDIA_TYPE *pmt)
Definition: dmo_interfaces.h:67
IMediaObject_vt::INHERIT_IUNKNOWN
INHERIT_IUNKNOWN()
IMediaObject_vt::SetInputType
HRESULT STDCALL(* SetInputType)(IMediaObject *This, unsigned long dwInputStreamIndex, const DMO_MEDIA_TYPE *pmt, unsigned long dwFlags)
Definition: dmo_interfaces.h:59
IMediaObject_vt::GetOutputSizeInfo
HRESULT STDCALL(* GetOutputSizeInfo)(IMediaObject *This, unsigned long dwOutputStreamIndex, unsigned long *pcbSize, unsigned long *pcbAlignment)
Definition: dmo_interfaces.h:78
IMediaObject_vt::GetInputMaxLatency
HRESULT STDCALL(* GetInputMaxLatency)(IMediaObject *This, unsigned long dwInputStreamIndex, REFERENCE_TIME *prtMaxLatency)
Definition: dmo_interfaces.h:82
IMediaObject_vt::SetOutputType
HRESULT STDCALL(* SetOutputType)(IMediaObject *This, unsigned long dwOutputStreamIndex, const DMO_MEDIA_TYPE *pmt, unsigned long dwFlags)
Definition: dmo_interfaces.h:63
IMediaObject_vt::GetInputType
HRESULT STDCALL(* GetInputType)(IMediaObject *This, unsigned long dwInputStreamIndex, unsigned long dwTypeIndex, DMO_MEDIA_TYPE *pmt)
Definition: dmo_interfaces.h:51
IMediaObject_vt::GetOutputStreamInfo
HRESULT STDCALL(* GetOutputStreamInfo)(IMediaObject *This, unsigned long dwOutputStreamIndex, unsigned long *pdwFlags)
Definition: dmo_interfaces.h:48
IMediaObject_vt::Discontinuity
HRESULT STDCALL(* Discontinuity)(IMediaObject *This, unsigned long dwInputStreamIndex)
Definition: dmo_interfaces.h:89
IMediaObject_vt::GetInputSizeInfo
HRESULT STDCALL(* GetInputSizeInfo)(IMediaObject *This, unsigned long dwInputStreamIndex, unsigned long *pcbSize, unsigned long *pcbMaxLookahead, unsigned long *pcbAlignment)
Definition: dmo_interfaces.h:73
IMediaObject_vt::GetOutputCurrentType
HRESULT STDCALL(* GetOutputCurrentType)(IMediaObject *This, unsigned long dwOutputStreamIndex, DMO_MEDIA_TYPE *pmt)
Definition: dmo_interfaces.h:70
IMediaObject_vt::ProcessInput
HRESULT STDCALL(* ProcessInput)(IMediaObject *This, unsigned long dwInputStreamIndex, IMediaBuffer *pBuffer, unsigned long dwFlags, REFERENCE_TIME rtTimestamp, REFERENCE_TIME rtTimelength)
Definition: dmo_interfaces.h:96
IMediaObject_vt::ProcessOutput
HRESULT STDCALL(* ProcessOutput)(IMediaObject *This, unsigned long dwFlags, unsigned long cOutputBufferCount, DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, unsigned long *pdwStatus)
Definition: dmo_interfaces.h:102
_DMO_OUTPUT_DATA_BUFFER
Definition: dmo_interfaces.h:26
_DMO_OUTPUT_DATA_BUFFER::rtTimestamp
REFERENCE_TIME rtTimestamp
Definition: dmo_interfaces.h:29
_DMO_OUTPUT_DATA_BUFFER::dwStatus
unsigned long dwStatus
Definition: dmo_interfaces.h:28
_DMO_OUTPUT_DATA_BUFFER::pBuffer
IMediaBuffer * pBuffer
Definition: dmo_interfaces.h:27
_DMO_OUTPUT_DATA_BUFFER::rtTimelength
REFERENCE_TIME rtTimelength
Definition: dmo_interfaces.h:30
_IDMOQualityControl
Definition: dmo_interfaces.h:169
_IDMOQualityControl::vt
IDMOQualityControl_vt * vt
Definition: dmo_interfaces.h:169
_IDMOVideoOutputOptimizations
Definition: dmo_interfaces.h:192
_IDMOVideoOutputOptimizations::vt
IDMOVideoOutputOptimizations_vt * vt
Definition: dmo_interfaces.h:192
_IEnumDMO
Definition: dmo_interfaces.h:130
_IEnumDMO::vt
IEnumDMO_vt * vt
Definition: dmo_interfaces.h:130
_IMediaBuffer
Definition: dmo_interfaces.h:22
_IMediaBuffer::vt
IMediaBuffer_vt * vt
Definition: dmo_interfaces.h:22
_IMediaObjectInPlace
Definition: dmo_interfaces.h:151
_IMediaObjectInPlace::vt
IMediaObjectInPlace_vt * vt
Definition: dmo_interfaces.h:151
_IMediaObject
Definition: dmo_interfaces.h:109
_IMediaObject::vt
IMediaObject_vt * vt
Definition: dmo_interfaces.h:109