ReactOS  0.4.14-dev-297-g23e575c
amstream.idl
Go to the documentation of this file.
1 /*
2  * Copyright 2004 Christian Costa
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 import "unknwn.idl";
20 import "mmstream.idl";
21 import "strmif.idl";
22 
23 cpp_quote("#include <ddraw.h>")
24 cpp_quote("#include <mmsystem.h>")
25 cpp_quote("#include <mmstream.h>")
26 cpp_quote("#include <ddstream.h>")
27 cpp_quote("#include <austream.h>")
28 
29 cpp_quote("#if 0")
30 interface IDirectDraw;
31 interface IDirectDrawSurface;
32 cpp_quote("#endif")
33 
39 
40 enum {
41  AMMSF_NOGRAPHTHREAD = 0x00000001
42 };
43 
44 enum {
46  AMMSF_CREATEPEER = 0x00000002,
47  AMMSF_STOPIFNOSAMPLES = 0x00000004,
48  AMMSF_NOSTALL = 0x00000008
49 };
50 
51 enum {
52  AMMSF_RENDERTYPEMASK = 0x00000003,
53  AMMSF_RENDERTOEXISTING = 0x00000000,
54  AMMSF_RENDERALLSTREAMS = 0x00000001,
55  AMMSF_NORENDER = 0x00000002,
56  AMMSF_NOCLOCK = 0x00000004,
57  AMMSF_RUN = 0x00000008
58 };
59 
60 
61 typedef [v1_enum] enum {
62  Disabled = 0,
63  ReadData = 1,
65 } OUTPUT_STATE;
66 
67 [
68 object,
69 uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D),
70 dual,
71 helpstring("IDirectShowStream Interface"),
73 ]
75 {
76  [propget, id(1), helpstring("property FileName")] HRESULT FileName([out, retval] BSTR *pVal);
77  [propput, id(1), helpstring("property FileName")] HRESULT FileName([in] BSTR newVal);
78  [propget, id(2), helpstring("property Video")] HRESULT Video([out, retval] OUTPUT_STATE *pVal);
79  [propput, id(2), helpstring("propetry Video")] HRESULT Video([in] OUTPUT_STATE newVal);
80  [propget, id(3), helpstring("property Audio")] HRESULT Audio([out, retval] OUTPUT_STATE *pVal);
81  [propput, id(3), helpstring("propetry Audio")] HRESULT Audio([in] OUTPUT_STATE newVal);
82 };
83 
84 [
85 object,
86 uuid(BEBE595C-9A6F-11d0-8FDE-00C04FD9189D),
88 ]
90 {
92  [in] STREAM_TYPE StreamType,
93  [in] DWORD dwFlags,
94  [in] IGraphBuilder *pFilterGraph);
95 
97  [out] IGraphBuilder **ppGraphBuilder);
98 
100  [out] IMediaStreamFilter **ppFilter);
101 
103  [in] IUnknown *pStreamObject,
104  [in] const MSPID *PurposeId,
105  [in] DWORD dwFlags,
106  [out] IMediaStream **ppNewStream);
107 
110  [in] DWORD dwFlags);
111 
113  [in] IBindCtx *pCtx,
114  [in] IMoniker *pMoniker,
115  [in] DWORD dwFlags);
116 
117  HRESULT Render(
118  [in] DWORD dwFlags);
119 }
120 
121 
122 [
123 object,
124 uuid(BEBE595D-9A6F-11d0-8FDE-00C04FD9189D),
126 ]
128 {
130  [in] IUnknown *pSourceObject,
131  [in] DWORD dwFlags,
132  [in] REFMSPID PurposeId,
133  [in] const STREAM_TYPE StreamType);
134 
136  [in] FILTER_STATE State);
137 
139  [in] IAMMultiMediaStream *pAMMultiMediaStream);
140 
142  [in] IMediaStreamFilter *pMediaStreamFilter);
143 
145  [in] IFilterGraph *pFilterGraph);
146 }
147 
148 
149 [
150 object,
151 local,
152 uuid(BEBE595E-9A6F-11d0-8FDE-00C04FD9189D),
154 ]
156 {
158  [in] IAMMediaStream *pAMMediaStream);
159 
161  [in] REFMSPID idPurpose,
162  [out] IMediaStream **ppMediaStream);
163 
165  [in] long Index,
166  [out] IMediaStream **ppMediaStream);
167 
169  [in] BOOL bRenderer);
170 
172  [in] [out] REFERENCE_TIME *pTime);
173 
175  [out] REFERENCE_TIME *pCurrentStreamTime);
176 
178  [in] REFERENCE_TIME WaitStreamTime);
179 
180  HRESULT Flush(
181  [in] BOOL bCancelEOS);
182 
184 }
185 
186 
187 [
188 object,
189 local,
190 uuid(AB6B4AFC-F6E4-11d0-900D-00C04FD9189D),
192 ]
194 {
195  HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw);
196 }
197 
198 
199 [
200 object,
201 local,
202 uuid(AB6B4AFE-F6E4-11d0-900D-00C04FD9189D),
204 ]
206 {
208  [out] IDirectDrawSurface **ppDirectDrawSurface,
209  [out] RECT * pRect);
210 
212 }
213 
214 
215 [
216 object,
217 local,
218 uuid(AB6B4AFA-F6E4-11d0-900D-00C04FD9189D),
220 ]
221 
223 {
225  [out] AM_MEDIA_TYPE * pMediaType,
226  [in] DWORD dwFlags);
227 
229  [in] AM_MEDIA_TYPE * pMediaType,
230  [in] DWORD dwFlags);
231 
233  [in] long lSampleSize,
234  [in] BYTE * pbBuffer,
235  [in] DWORD dwFlags,
236  [in] IUnknown *pUnkOuter,
237  [out] IAMMediaTypeSample ** ppAMMediaTypeSample);
238 
240  [out] ALLOCATOR_PROPERTIES *pProps);
241 
243  [in] ALLOCATOR_PROPERTIES *pProps);
244 }
245 
246 
247 [
248 object,
249 local,
250 uuid(AB6B4AFB-F6E4-11d0-900D-00C04FD9189D),
252 ]
254 {
256  [in] BYTE *pBuffer,
257  [in] long lSize);
258 
260  [out] BYTE ** ppBuffer);
261 
262  long GetSize(void);
263 
265  [out] REFERENCE_TIME * pTimeStart,
266  [out] REFERENCE_TIME * pTimeEnd);
267 
269  [in] REFERENCE_TIME * pTimeStart,
270  [in] REFERENCE_TIME * pTimeEnd);
271 
272  HRESULT IsSyncPoint(void);
273 
275  BOOL bIsSyncPoint);
276 
277  HRESULT IsPreroll(void);
278 
280  BOOL bIsPreroll);
281 
282  long GetActualDataLength(void);
283 
285 
287  AM_MEDIA_TYPE **ppMediaType);
288 
290  AM_MEDIA_TYPE *pMediaType);
291 
292  HRESULT IsDiscontinuity(void);
293 
295  BOOL bDiscontinuity);
296 
298  [out] LONGLONG * pTimeStart,
299  [out] LONGLONG * pTimeEnd);
300 
302  [in] LONGLONG * pTimeStart,
303  [in] LONGLONG * pTimeEnd);
304 }
305 
306 [
307  uuid(49C47CE5-9BA4-11d0-8212-00C04FC32C45)
308 ]
309 coclass AMMultiMediaStream
310 {
311  [default] dispinterface IDirectShowStream;
312 }
313 
314 cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
315 cpp_quote("DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
316 cpp_quote("DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
317 cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
318 cpp_quote("DEFINE_GUID(CLSID_MediaStreamFilter, 0x49c47ce0, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
HRESULT SetActualDataLength(long Len)
HRESULT Render([in] DWORD dwFlags)
HRESULT SetTime([in] REFERENCE_TIME *pTimeStart, [in] REFERENCE_TIME *pTimeEnd)
HRESULT IsSyncPoint(void)
Definition: scsiwmi.h:51
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
HRESULT GetMediaTime([out] LONGLONG *pTimeStart, [out] LONGLONG *pTimeEnd)
long GetActualDataLength(void)
HRESULT GetFilter([out] IMediaStreamFilter **ppFilter)
coclass SHDocVw::ShellWindows dual
Definition: exdisp.idl:631
OUTPUT_STATE Video
HRESULT ReferenceTimeToStreamTime([in] [out] REFERENCE_TIME *pTime)
HRESULT JoinFilter([in] IMediaStreamFilter *pMediaStreamFilter)
typedef helpstring
HRESULT SetMediaTime([in] LONGLONG *pTimeStart, [in] LONGLONG *pTimeEnd)
long GetSize(void)
HRESULT EndOfStream()
OLECHAR * BSTR
Definition: compat.h:1934
STREAM_TYPE
Definition: mmstream.idl:50
HRESULT SupportSeeking([in] BOOL bRenderer)
coclass AMMultiMediaStream cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") cpp_quote("DEFINE_GUID(CLSID_AMAudioStream
HRESULT EnumMediaStreams([in] long Index, [out] IMediaStream **ppMediaStream)
HRESULT OpenFile([in] LPCWSTR pszFileName, [in] DWORD dwFlags)
HRESULT IsPreroll(void)
unsigned int BOOL
Definition: ntddk_ex.h:94
HRESULT SetPointer([in] BYTE *pBuffer, [in] long lSize)
HRESULT GetPointer([out] BYTE **ppBuffer)
WORD WORD PSZ PSZ pszFileName
Definition: vdmdbg.h:41
_In_ PCCERT_CONTEXT _In_opt_ LPFILETIME pTime
Definition: wincrypt.h:4840
PVOID pBuffer
HRESULT SetSyncPoint(BOOL bIsSyncPoint)
int64_t LONGLONG
Definition: typedefs.h:66
HRESULT GetSurfaceAndReleaseLock([out] IDirectDrawSurface **ppDirectDrawSurface, [out] RECT *pRect)
HRESULT AddMediaStream([in] IUnknown *pStreamObject, [in] const MSPID *PurposeId, [in] DWORD dwFlags, [out] IMediaStream **ppNewStream)
LONGLONG REFERENCE_TIME
Definition: dmusicks.h:9
LONG HRESULT
Definition: typedefs.h:77
HRESULT SetDiscontinuity(BOOL bDiscontinuity)
HRESULT GetTime([out] REFERENCE_TIME *pTimeStart, [out] REFERENCE_TIME *pTimeEnd)
HRESULT CreateSample([in] long lSampleSize, [in] BYTE *pbBuffer, [in] DWORD dwFlags, [in] IUnknown *pUnkOuter, [out] IAMMediaTypeSample **ppAMMediaTypeSample)
static const UCHAR Index[8]
Definition: usbohci.c:18
static FILE * out
Definition: regtests2xml.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
#define Len
Definition: deflate.h:82
HRESULT GetStreamAllocatorRequirements([out] ALLOCATOR_PROPERTIES *pProps)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
HRESULT GetCurrentStreamTime([out] REFERENCE_TIME *pCurrentStreamTime)
unsigned char BYTE
Definition: mem.h:68
HRESULT OpenMoniker([in] IBindCtx *pCtx, [in] IMoniker *pMoniker, [in] DWORD dwFlags)
OUTPUT_STATE Audio
HRESULT GetFilterGraph([out] IGraphBuilder **ppGraphBuilder)
#define interface
Definition: basetyps.h:61
HRESULT LockMediaSamplePointer(void)
coclass AMMultiMediaStream DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45)
#define local
Definition: zutil.h:30
#define D(name, bit)
GLuint in
Definition: glext.h:9616
static unsigned char pointer_default
Definition: parser.tab.c:114
HRESULT GetMediaType(AM_MEDIA_TYPE **ppMediaType)
HRESULT GetFormat([out] AM_MEDIA_TYPE *pMediaType, [in] DWORD dwFlags)
HRESULT SetState([in] FILTER_STATE State)
HRESULT AddMediaStream([in] IAMMediaStream *pAMMediaStream)
HRESULT Initialize([in] STREAM_TYPE StreamType, [in] DWORD dwFlags, [in] IGraphBuilder *pFilterGraph)
HRESULT Flush([in] BOOL bCancelEOS)
HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw)
GLenum GLuint id
Definition: glext.h:5579
HRESULT WaitUntil([in] REFERENCE_TIME WaitStreamTime)
HRESULT JoinFilterGraph([in] IFilterGraph *pFilterGraph)
HRESULT SetMediaType(AM_MEDIA_TYPE *pMediaType)
HRESULT SetStreamAllocatorRequirements([in] ALLOCATOR_PROPERTIES *pProps)
HRESULT SetPreroll(BOOL bIsPreroll)
HRESULT IsDiscontinuity(void)
OUTPUT_STATE
Definition: amstream.idl:61
HRESULT Initialize([in] IUnknown *pSourceObject, [in] DWORD dwFlags, [in] REFMSPID PurposeId, [in] const STREAM_TYPE StreamType)
HRESULT GetMediaStream([in] REFMSPID idPurpose, [out] IMediaStream **ppMediaStream)
HRESULT JoinAMMultiMediaStream([in] IAMMultiMediaStream *pAMMultiMediaStream)
void * object
Definition: jmemsys.h:48
HRESULT SetFormat([in] AM_MEDIA_TYPE *pMediaType, [in] DWORD dwFlags)