ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

amstream.idl
Go to the documentation of this file.
00001 /*
00002  * Copyright 2004 Christian Costa
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 import "unknwn.idl";
00020 import "mmstream.idl";
00021 import "strmif.idl";
00022 
00023 cpp_quote("#include <ddraw.h>")
00024 cpp_quote("#include <mmsystem.h>")
00025 cpp_quote("#include <mmstream.h>")
00026 cpp_quote("#include <ddstream.h>")
00027 cpp_quote("#include <austream.h>")
00028 
00029 cpp_quote("#if 0")
00030 interface IDirectDraw;
00031 interface IDirectDrawSurface;
00032 cpp_quote("#endif")
00033 
00034 interface IAMMultiMediaStream;
00035 interface IAMMediaStream;
00036 interface IMediaStreamFilter;
00037 interface IAMMediaTypeStream;
00038 interface IAMMediaTypeSample;
00039 
00040 enum {
00041     AMMSF_NOGRAPHTHREAD      = 0x00000001
00042 };
00043 
00044 enum {
00045     AMMSF_ADDDEFAULTRENDERER = 0x00000001,
00046     AMMSF_CREATEPEER         = 0x00000002,
00047     AMMSF_STOPIFNOSAMPLES    = 0x00000004,
00048     AMMSF_NOSTALL        = 0x00000008
00049 };
00050 
00051 enum {
00052     AMMSF_RENDERTYPEMASK     = 0x00000003,
00053     AMMSF_RENDERTOEXISTING   = 0x00000000,
00054     AMMSF_RENDERALLSTREAMS   = 0x00000001,
00055     AMMSF_NORENDER           = 0x00000002,
00056     AMMSF_NOCLOCK            = 0x00000004,
00057     AMMSF_RUN                = 0x00000008
00058 };
00059 
00060 
00061 typedef [v1_enum] enum {
00062     Disabled = 0,
00063     ReadData = 1,
00064     RenderData = 2
00065 } OUTPUT_STATE;
00066 
00067 [
00068 object,
00069 uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D),
00070 dual,
00071 helpstring("IDirectShowStream Interface"),
00072 pointer_default(unique)
00073 ]
00074 interface IDirectShowStream : IDispatch
00075 {
00076     [propget, id(1), helpstring("property FileName")] HRESULT FileName([out, retval] BSTR *pVal);
00077     [propput, id(1), helpstring("property FileName")] HRESULT FileName([in] BSTR newVal);
00078     [propget, id(2), helpstring("property Video")] HRESULT Video([out, retval] OUTPUT_STATE *pVal);
00079     [propput, id(2), helpstring("propetry Video")] HRESULT Video([in] OUTPUT_STATE newVal);
00080     [propget, id(3), helpstring("property Audio")] HRESULT Audio([out, retval] OUTPUT_STATE *pVal);
00081     [propput, id(3), helpstring("propetry Audio")] HRESULT Audio([in] OUTPUT_STATE newVal);
00082 };
00083 
00084 [
00085 object,
00086 uuid(BEBE595C-9A6F-11d0-8FDE-00C04FD9189D),
00087 pointer_default(unique)
00088 ]
00089 interface IAMMultiMediaStream : IMultiMediaStream
00090 {
00091     HRESULT Initialize(
00092         [in] STREAM_TYPE StreamType,
00093         [in] DWORD dwFlags,
00094         [in] IGraphBuilder *pFilterGraph);
00095 
00096     HRESULT GetFilterGraph(
00097         [out] IGraphBuilder **ppGraphBuilder);
00098 
00099     HRESULT GetFilter(
00100         [out] IMediaStreamFilter **ppFilter);
00101 
00102     HRESULT AddMediaStream(
00103         [in] IUnknown *pStreamObject,
00104         [in] const MSPID *PurposeId,
00105         [in] DWORD dwFlags,
00106         [out] IMediaStream **ppNewStream);
00107 
00108     HRESULT OpenFile(
00109         [in] LPCWSTR pszFileName,
00110         [in] DWORD dwFlags);
00111 
00112     HRESULT OpenMoniker(
00113         [in] IBindCtx *pCtx,
00114         [in] IMoniker *pMoniker,
00115         [in] DWORD dwFlags);
00116 
00117     HRESULT Render(
00118         [in] DWORD dwFlags);
00119 }
00120 
00121 
00122 [
00123 object,
00124 uuid(BEBE595D-9A6F-11d0-8FDE-00C04FD9189D),
00125 pointer_default(unique)
00126 ]
00127 interface IAMMediaStream : IMediaStream
00128 {
00129     HRESULT Initialize(
00130         [in] IUnknown *pSourceObject,
00131         [in] DWORD dwFlags,
00132         [in] REFMSPID PurposeId,
00133         [in] const STREAM_TYPE StreamType);
00134 
00135     HRESULT SetState(
00136         [in] FILTER_STATE State);
00137 
00138     HRESULT JoinAMMultiMediaStream(
00139         [in] IAMMultiMediaStream *pAMMultiMediaStream);
00140 
00141     HRESULT JoinFilter(
00142         [in] IMediaStreamFilter *pMediaStreamFilter);
00143 
00144     HRESULT JoinFilterGraph(
00145         [in] IFilterGraph *pFilterGraph);
00146 }
00147 
00148 
00149 [
00150 object,
00151 local,
00152 uuid(BEBE595E-9A6F-11d0-8FDE-00C04FD9189D),
00153 pointer_default(unique)
00154 ]
00155 interface IMediaStreamFilter : IBaseFilter
00156 {
00157     HRESULT AddMediaStream(
00158         [in] IAMMediaStream *pAMMediaStream);
00159 
00160     HRESULT GetMediaStream(
00161         [in] REFMSPID idPurpose,
00162         [out] IMediaStream **ppMediaStream);
00163 
00164     HRESULT EnumMediaStreams(
00165         [in] long Index,
00166         [out] IMediaStream **ppMediaStream);
00167 
00168     HRESULT SupportSeeking(
00169         [in] BOOL bRenderer);
00170 
00171     HRESULT ReferenceTimeToStreamTime(
00172         [in] [out] REFERENCE_TIME *pTime);
00173 
00174     HRESULT GetCurrentStreamTime(
00175         [out] REFERENCE_TIME *pCurrentStreamTime);
00176 
00177     HRESULT WaitUntil(
00178         [in]  REFERENCE_TIME WaitStreamTime);
00179 
00180     HRESULT Flush(
00181         [in] BOOL bCancelEOS);
00182 
00183     HRESULT EndOfStream();
00184 }
00185 
00186 
00187 [
00188 object,
00189 local,
00190 uuid(AB6B4AFC-F6E4-11d0-900D-00C04FD9189D),
00191 pointer_default(unique)
00192 ]
00193 interface IDirectDrawMediaSampleAllocator : IUnknown
00194 {
00195     HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw);
00196 }
00197 
00198 
00199 [
00200 object,
00201 local,
00202 uuid(AB6B4AFE-F6E4-11d0-900D-00C04FD9189D),
00203 pointer_default(unique)
00204 ]
00205 interface IDirectDrawMediaSample : IUnknown
00206 {
00207     HRESULT GetSurfaceAndReleaseLock(
00208         [out] IDirectDrawSurface **ppDirectDrawSurface,
00209         [out] RECT * pRect);
00210 
00211     HRESULT LockMediaSamplePointer(void);
00212 }
00213 
00214 
00215 [
00216 object,
00217 local,
00218 uuid(AB6B4AFA-F6E4-11d0-900D-00C04FD9189D),
00219 pointer_default(unique)
00220 ]
00221 
00222 interface IAMMediaTypeStream : IMediaStream
00223 {
00224     HRESULT GetFormat(
00225         [out] AM_MEDIA_TYPE * pMediaType,
00226         [in] DWORD dwFlags);
00227 
00228     HRESULT SetFormat(
00229         [in] AM_MEDIA_TYPE * pMediaType,
00230         [in] DWORD dwFlags);
00231 
00232     HRESULT CreateSample(
00233         [in] long lSampleSize,
00234         [in] BYTE * pbBuffer,
00235         [in] DWORD dwFlags,
00236         [in] IUnknown *pUnkOuter,
00237         [out] IAMMediaTypeSample ** ppAMMediaTypeSample);
00238 
00239     HRESULT GetStreamAllocatorRequirements(
00240         [out] ALLOCATOR_PROPERTIES *pProps);
00241 
00242     HRESULT SetStreamAllocatorRequirements(
00243         [in] ALLOCATOR_PROPERTIES *pProps);
00244 }
00245 
00246 
00247 [
00248 object,
00249 local,
00250 uuid(AB6B4AFB-F6E4-11d0-900D-00C04FD9189D),
00251 pointer_default(unique)
00252 ]
00253 interface IAMMediaTypeSample : IStreamSample
00254 {
00255     HRESULT SetPointer(
00256         [in] BYTE *pBuffer,
00257         [in] long lSize);
00258 
00259     HRESULT GetPointer(
00260         [out] BYTE ** ppBuffer);
00261 
00262     long GetSize(void);
00263 
00264     HRESULT GetTime(
00265         [out] REFERENCE_TIME * pTimeStart,
00266         [out] REFERENCE_TIME * pTimeEnd);
00267 
00268     HRESULT SetTime(
00269         [in] REFERENCE_TIME * pTimeStart,
00270         [in] REFERENCE_TIME * pTimeEnd);
00271 
00272     HRESULT IsSyncPoint(void);
00273 
00274     HRESULT SetSyncPoint(
00275         BOOL bIsSyncPoint);
00276 
00277     HRESULT IsPreroll(void);
00278 
00279     HRESULT SetPreroll(
00280         BOOL bIsPreroll);
00281 
00282     long GetActualDataLength(void);
00283 
00284     HRESULT SetActualDataLength(long Len);
00285 
00286     HRESULT GetMediaType(
00287         AM_MEDIA_TYPE **ppMediaType);
00288 
00289     HRESULT SetMediaType(
00290         AM_MEDIA_TYPE *pMediaType);
00291 
00292     HRESULT IsDiscontinuity(void);
00293 
00294     HRESULT SetDiscontinuity(
00295         BOOL bDiscontinuity);
00296 
00297     HRESULT GetMediaTime(
00298         [out] LONGLONG * pTimeStart,
00299         [out] LONGLONG * pTimeEnd);
00300 
00301     HRESULT SetMediaTime(
00302         [in] LONGLONG * pTimeStart,
00303         [in] LONGLONG * pTimeEnd);
00304 }
00305 
00306 [
00307     uuid(49C47CE5-9BA4-11d0-8212-00C04FC32C45)
00308 ]
00309 coclass AMMultiMediaStream
00310 {
00311     [default] dispinterface IDirectShowStream;
00312 }
00313 
00314 cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream,  0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
00315 cpp_quote("DEFINE_GUID(CLSID_AMAudioStream,       0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
00316 cpp_quote("DEFINE_GUID(CLSID_AMAudioData,         0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
00317 cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream,   0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
00318 cpp_quote("DEFINE_GUID(CLSID_MediaStreamFilter,   0x49c47ce0, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")

Generated on Sat May 26 2012 04:29:13 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.