ReactOS  0.4.14-dev-342-gdc047f9
mediaobj.idl
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2002 Alexandre Julliard
3  * Copyright (C) 2004 Vincent BĂ©ron
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18  */
19 
20 import "unknwn.idl";
21 import "objidl.idl";
22 import "strmif.idl";
23 
24 interface IDMOQualityControl;
25 interface IDMOVideoOutputOptimizations;
26 
27 typedef struct _DMOMediaType
28 {
30  GUID subtype;
35  IUnknown *pUnk;
37  BYTE *pbFormat;
39 
40 /*****************************************************************************
41  * IEnumDMO interface
42  */
43 [
44  object,
45  uuid(2C3CD98A-2BFA-4A53-9C27-5249BA64BA0F),
47 ]
48 interface IEnumDMO : IUnknown
49 {
50  [local]
51  HRESULT Next(
52  [in] DWORD cItemsToFetch,
53  [out] CLSID *pCLSID,
54  [out] WCHAR **Names,
55  [out] DWORD *pcItemsFetched
56  );
57 
58  HRESULT Skip(
59  [in] DWORD cItemsToSkip
60  );
61 
62  HRESULT Reset();
63 
64  HRESULT Clone(
65  [out] IEnumDMO **ppEnum
66  );
67 }
68 
69 /*****************************************************************************
70  * IMediaBuffer interface
71  */
72 [
73  object,
74  uuid(59eff8b9-938c-4a26-82f2-95cb84cdc837),
75  local
76 ]
77 interface IMediaBuffer : IUnknown
78 {
79  HRESULT SetLength(
80  DWORD cbLength
81  );
82 
83  HRESULT GetMaxLength(
84  [out] DWORD *pcbMaxLength
85  );
86 
87  HRESULT GetBufferAndLength(
88  [out] BYTE **ppBuffer,
89  [out] DWORD *pcbLength
90  );
91 }
92 
93 typedef struct _DMO_OUTPUT_DATA_BUFFER {
94  IMediaBuffer *pBuffer;
99 
101  DMO_INPLACE_NORMAL = 0x00000000,
102  DMO_INPLACE_ZERO = 0x00000001
103 };
104 
105 /*****************************************************************************
106  * IMediaObject interface
107  */
108 [
109  object,
110  uuid(d8ad0f58-5494-4102-97c5-ec798e59bcf4),
111  local
112 ]
114 {
116  [out] DWORD *pcInputStreams,
117  [out] DWORD *pcOutputStreams
118  );
119 
121  DWORD dwInputStreamIndex,
122  [out] DWORD *pdwFlags
123  );
124 
126  DWORD dwOutputStreamIndex,
127  [out] DWORD *pdwFlags
128  );
129 
131  DWORD dwInputStreamIndex,
132  DWORD dwTypeIndex,
133  [out] DMO_MEDIA_TYPE *pmt
134  );
135 
137  DWORD dwOutputStreamIndex,
138  DWORD dwTypeIndex,
139  [out] DMO_MEDIA_TYPE *pmt
140  );
141 
143  DWORD dwInputStreamIndex,
144  [in] const DMO_MEDIA_TYPE *pmt,
145  DWORD dwFlags
146  );
147 
149  DWORD dwOutputStreamIndex,
150  [in] const DMO_MEDIA_TYPE *pmt,
151  DWORD dwFlags
152  );
153 
155  DWORD dwInputStreamIndex,
156  [out] DMO_MEDIA_TYPE *pmt
157  );
158 
160  DWORD dwOutputStreamIndex,
161  [out] DMO_MEDIA_TYPE *pmt
162  );
163 
165  DWORD dwInputStreamIndex,
166  [out] DWORD *pcbSize,
167  [out] DWORD *pcbMaxLookahead,
168  [out] DWORD *pcbAlignment
169  );
170 
172  DWORD dwOutputStreamIndex,
173  [out] DWORD *pcbSize,
174  [out] DWORD *pcbAlignment
175  );
176 
178  DWORD dwInputStreamIndex,
179  [out] REFERENCE_TIME *prtMaxLatency
180  );
181 
183  DWORD dwInputStreamIndex,
184  REFERENCE_TIME rtMaxLatency
185  );
186 
187  HRESULT Flush();
188 
189  HRESULT Discontinuity(DWORD dwInputStreamIndex);
190 
192 
194 
196  DWORD dwInputStreamIndex,
197  [out] DWORD *dwFlags
198  );
199 
201  DWORD dwInputStreamIndex,
202  IMediaBuffer *pBuffer,
203  DWORD dwFlags,
206  );
207 
209  DWORD dwFlags,
210  DWORD cOutputBufferCount,
211  [in,out] DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
212  [out] DWORD *pdwStatus
213  );
214 
215  HRESULT Lock(LONG bLock);
216 };
217 
218 /*****************************************************************************
219  * IMediaObjectInPlace interface
220  */
221 
222 [
223  object,
224  uuid(651b9ad0-0fc7-4aa9-9538-d89931010741),
225  local
226 ]
229  [in] ULONG ulSize,
230  [in,out] BYTE* pData,
231  [in] REFERENCE_TIME refTimeStart,
232  [in] DWORD dwFlags
233  );
234 
235  HRESULT Clone(
236  [out] IMediaObjectInPlace **ppMediaObject
237  );
238 
240  [out] REFERENCE_TIME *pLatencyTime
241  );
242 }
PWSTR Names[NAMES_COUNT]
REFERENCE_TIME rtTimestamp
Definition: mediaobj.idl:96
HRESULT GetStreamCount([out] DWORD *pcInputStreams, [out] DWORD *pcOutputStreams)
HRESULT GetInputType(DWORD dwInputStreamIndex, DWORD dwTypeIndex, [out] DMO_MEDIA_TYPE *pmt)
HRESULT Clone([out] IMediaObjectInPlace **ppMediaObject)
HRESULT GetOutputType(DWORD dwOutputStreamIndex, DWORD dwTypeIndex, [out] DMO_MEDIA_TYPE *pmt)
BYTE * pbFormat
Definition: mediaobj.idl:44
HRESULT ProcessOutput(DWORD dwFlags, DWORD cOutputBufferCount, [in, out] DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, [out] DWORD *pdwStatus)
ULONG lSampleSize
Definition: mediaobj.idl:40
HRESULT ProcessInput(DWORD dwInputStreamIndex, IMediaBuffer *pBuffer, DWORD dwFlags, REFERENCE_TIME rtTimestamp, REFERENCE_TIME rtTimelength)
HRESULT Lock(LONG bLock)
HRESULT Process([in] ULONG ulSize, [in, out] BYTE *pData, [in] REFERENCE_TIME refTimeStart, [in] DWORD dwFlags)
HRESULT GetLatency([out] REFERENCE_TIME *pLatencyTime)
BOOL bTemporalCompression
Definition: mediaobj.idl:39
HRESULT SetInputMaxLatency(DWORD dwInputStreamIndex, REFERENCE_TIME rtMaxLatency)
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
HRESULT GetOutputSizeInfo(DWORD dwOutputStreamIndex, [out] DWORD *pcbSize, [out] DWORD *pcbAlignment)
PVOID pBuffer
HRESULT GetInputSizeInfo(DWORD dwInputStreamIndex, [out] DWORD *pcbSize, [out] DWORD *pcbMaxLookahead, [out] DWORD *pcbAlignment)
IUnknown * pUnk
Definition: mediaobj.idl:42
HRESULT GetOutputCurrentType(DWORD dwOutputStreamIndex, [out] DMO_MEDIA_TYPE *pmt)
struct _DMOMediaType DMO_MEDIA_TYPE
HRESULT Clone([out] IEnumDMO **ppEnum)
HRESULT SetOutputType(DWORD dwOutputStreamIndex, [in] const DMO_MEDIA_TYPE *pmt, DWORD dwFlags)
* PDMO_OUTPUT_DATA_BUFFER
Definition: mediaobj.idl:98
LONGLONG REFERENCE_TIME
Definition: dmusicks.h:9
__wchar_t WCHAR
Definition: xmlstorage.h:180
ULONG cbFormat
Definition: mediaobj.idl:43
LONG HRESULT
Definition: typedefs.h:77
const GLubyte * c
Definition: glext.h:8905
HRESULT Next([in] DWORD cItemsToFetch, [out] CLSID *pCLSID, [out] WCHAR **Names, [out] DWORD *pcItemsFetched)
HRESULT Discontinuity(DWORD dwInputStreamIndex)
static FILE * out
Definition: regtests2xml.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
HRESULT AllocateStreamingResources()
BOOL bFixedSizeSamples
Definition: mediaobj.idl:38
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
unsigned char BYTE
Definition: mem.h:68
GUID formattype
Definition: mediaobj.idl:41
HRESULT GetInputStreamInfo(DWORD dwInputStreamIndex, [out] DWORD *pdwFlags)
#define local
Definition: zutil.h:30
HRESULT Flush()
DWORD dwStatus
Definition: mediaobj.idl:95
GLuint in
Definition: glext.h:9616
static unsigned char pointer_default
Definition: parser.tab.c:114
GUID majortype
Definition: mediaobj.idl:36
_DMO_INPLACE_PROCESS_FLAGS
Definition: mediaobj.idl:100
HRESULT SetInputType(DWORD dwInputStreamIndex, [in] const DMO_MEDIA_TYPE *pmt, DWORD dwFlags)
HRESULT GetInputMaxLatency(DWORD dwInputStreamIndex, [out] REFERENCE_TIME *prtMaxLatency)
DMO_OUTPUT_DATA_BUFFER
Definition: mediaobj.idl:98
REFERENCE_TIME rtTimelength
Definition: mediaobj.idl:97
HRESULT Skip([in] DWORD cItemsToSkip)
unsigned int ULONG
Definition: retypes.h:1
HRESULT Reset()
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1827
int f2(S1 &, S2 &)
HRESULT GetOutputStreamInfo(DWORD dwOutputStreamIndex, [out] DWORD *pdwFlags)
HRESULT GetInputCurrentType(DWORD dwInputStreamIndex, [out] DMO_MEDIA_TYPE *pmt)
void * object
Definition: jmemsys.h:48
HRESULT FreeStreamingResources()
HRESULT GetInputStatus(DWORD dwInputStreamIndex, [out] DWORD *dwFlags)