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