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

axcore.idl
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2002 Robert Shearman
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 #define CHARS_IN_GUID 39
00020 cpp_quote("#define CHARS_IN_GUID 39")
00021 
00022 /* GetTimeFormat is defined in winnls.h as
00023  * either the W or A suffixed version */
00024 cpp_quote("#undef GetTimeFormat")
00025 
00026 typedef struct _AMMediaType
00027 {
00028     GUID       majortype;
00029     GUID       subtype;
00030     BOOL       bFixedSizeSamples;
00031     BOOL       bTemporalCompression;
00032     ULONG      lSampleSize;
00033     GUID       formattype;
00034     IUnknown * pUnk;
00035     ULONG      cbFormat;
00036     [size_is(cbFormat)] BYTE * pbFormat;
00037 } AM_MEDIA_TYPE;
00038 
00039 typedef enum _PinDirection
00040 {
00041     PINDIR_INPUT,
00042     PINDIR_OUTPUT
00043 } PIN_DIRECTION;
00044 
00045 #define MAX_PIN_NAME    128
00046 #define MAX_FILTER_NAME 128
00047 cpp_quote("#define MAX_PIN_NAME    128")
00048 cpp_quote("#define MAX_FILTER_NAME 128")
00049 
00050 cpp_quote("#ifndef REFERENCE_TIME_DEFINED")
00051 cpp_quote("#define REFERENCE_TIME_DEFINED")
00052 typedef LONGLONG REFERENCE_TIME;
00053 cpp_quote("#endif")
00054 
00055 cpp_quote("#ifndef REFTIME_DEFINED")
00056 cpp_quote("#define REFTIME_DEFINED")
00057 typedef DOUBLE REFTIME;
00058 cpp_quote("#endif")
00059 
00060 typedef DWORD_PTR HSEMAPHORE;
00061 typedef DWORD_PTR HEVENT;
00062 
00063 typedef struct _AllocatorProperties
00064 {
00065     long cBuffers;
00066     long cbBuffer;
00067     long cbAlign;
00068     long cbPrefix;
00069 } ALLOCATOR_PROPERTIES;
00070 
00071 interface IAMovieSetup;
00072 interface IEnumFilters;
00073 interface IEnumMediaTypes;
00074 interface IEnumPins;
00075 interface IBaseFilter;
00076 interface IFilterGraph;
00077 interface IMediaFilter;
00078 interface IMediaSample;
00079 interface IMemAllocator;
00080 interface IMemAllocatorCallbackTemp;
00081 interface IMemAllocatorNotifyCallbackTemp;
00082 interface IMemInputPin;
00083 interface IPin;
00084 interface IReferenceClock;
00085 
00086 [
00087 object,
00088 uuid(56a86891-0ad4-11ce-b03a-0020af0ba770),
00089 pointer_default(unique)
00090 ]
00091 interface IPin : IUnknown
00092 {
00093     typedef struct _PinInfo
00094     {
00095         IBaseFilter *pFilter;
00096         PIN_DIRECTION dir;
00097         WCHAR achName[MAX_PIN_NAME];
00098     } PIN_INFO;
00099 
00100     HRESULT Connect(
00101         [in] IPin * pReceivePin,
00102         [in] const AM_MEDIA_TYPE * pmt);
00103 
00104     HRESULT ReceiveConnection(
00105         [in] IPin * pConnector,
00106         [in] const AM_MEDIA_TYPE *pmt);
00107 
00108     HRESULT Disconnect(void);
00109 
00110     HRESULT ConnectedTo(
00111         [out] IPin **pPin);
00112 
00113     HRESULT ConnectionMediaType(
00114         [out] AM_MEDIA_TYPE *pmt);
00115 
00116     HRESULT QueryPinInfo(
00117         [out] PIN_INFO * pInfo);
00118 
00119     HRESULT QueryDirection(
00120         [out] PIN_DIRECTION *pPinDir);
00121 
00122     HRESULT QueryId(
00123         [out] LPWSTR * Id);
00124 
00125     HRESULT QueryAccept(
00126         [in] const AM_MEDIA_TYPE *pmt);
00127 
00128     HRESULT EnumMediaTypes(
00129         [out] IEnumMediaTypes **ppEnum);
00130 
00131     HRESULT QueryInternalConnections(
00132         [out] IPin* *apPin,
00133         [in, out] ULONG *nPin);
00134 
00135     HRESULT EndOfStream(void);
00136 
00137     HRESULT BeginFlush(void);
00138 
00139     HRESULT EndFlush(void);
00140     HRESULT NewSegment(
00141         [in] REFERENCE_TIME tStart,
00142         [in] REFERENCE_TIME tStop,
00143         [in] double dRate);
00144 }
00145 
00146 typedef IPin *PPIN;
00147 
00148 [
00149 object,
00150 uuid(56a86892-0ad4-11ce-b03a-0020af0ba770),
00151 pointer_default(unique)
00152 ]
00153 interface IEnumPins : IUnknown
00154 {
00155 
00156     HRESULT Next(
00157         [in] ULONG cPins,
00158         [out, size_is(cPins)] IPin ** ppPins,
00159         [out] ULONG * pcFetched);
00160 
00161     HRESULT Skip(
00162         [in] ULONG cPins);
00163 
00164     HRESULT Reset(void);
00165 
00166     HRESULT Clone(
00167         [out] IEnumPins **ppEnum);
00168 }
00169 
00170 typedef IEnumPins *PENUMPINS;
00171 
00172 [
00173 object,
00174 uuid(89c31040-846b-11ce-97d3-00aa0055595a),
00175 pointer_default(unique)
00176 ]
00177 interface IEnumMediaTypes : IUnknown
00178 {
00179     HRESULT Next(
00180         [in] ULONG cMediaTypes,
00181         [out, size_is(cMediaTypes)]
00182              AM_MEDIA_TYPE ** ppMediaTypes,
00183         [out] ULONG * pcFetched
00184     );
00185 
00186     HRESULT Skip(
00187         [in] ULONG cMediaTypes);
00188 
00189     HRESULT Reset(void);
00190 
00191     HRESULT Clone(
00192         [out] IEnumMediaTypes **ppEnum
00193     );
00194 }
00195 
00196 typedef IEnumMediaTypes *PENUMMEDIATYPES;
00197 
00198 [
00199 object,
00200 uuid(56a8689f-0ad4-11ce-b03a-0020af0ba770),
00201 pointer_default(unique)
00202 ]
00203 interface IFilterGraph : IUnknown
00204 {
00205     HRESULT AddFilter(
00206         [in] IBaseFilter * pFilter,
00207         [in, string] LPCWSTR pName);
00208 
00209     HRESULT RemoveFilter(
00210         [in] IBaseFilter * pFilter);
00211 
00212     HRESULT EnumFilters(
00213         [out] IEnumFilters **ppEnum);
00214 
00215     HRESULT FindFilterByName(
00216         [in, string] LPCWSTR pName,
00217         [out] IBaseFilter ** ppFilter);
00218 
00219     HRESULT ConnectDirect(
00220         [in] IPin * ppinOut,
00221         [in] IPin * ppinIn,
00222         [in, unique] const AM_MEDIA_TYPE* pmt);
00223 
00224     HRESULT Reconnect(
00225         [in] IPin * ppin);
00226 
00227     HRESULT Disconnect(
00228         [in] IPin * ppin);
00229 
00230     HRESULT SetDefaultSyncSource(void);
00231 }
00232 
00233 typedef IFilterGraph *PFILTERGRAPH;
00234 
00235 [
00236 object,
00237 uuid(56a86893-0ad4-11ce-b03a-0020af0ba770),
00238 pointer_default(unique)
00239 ]
00240 interface IEnumFilters : IUnknown
00241 {
00242     HRESULT Next(
00243         [in]  ULONG cFilters,
00244         [out] IBaseFilter ** ppFilter,
00245         [out] ULONG * pcFetched);
00246 
00247 
00248     HRESULT Skip(
00249         [in] ULONG cFilters);
00250 
00251 
00252     HRESULT Reset(void);
00253 
00254 
00255     HRESULT Clone(
00256         [out] IEnumFilters **ppEnum);
00257 }
00258 
00259 typedef IEnumFilters *PENUMFILTERS;
00260 
00261 [
00262 object,
00263 uuid(56a86899-0ad4-11ce-b03a-0020af0ba770),
00264 pointer_default(unique)
00265 ]
00266 interface IMediaFilter : IPersist
00267 {
00268     typedef enum _FilterState
00269     {
00270         State_Stopped,
00271         State_Paused,
00272         State_Running
00273     } FILTER_STATE;
00274 
00275     HRESULT Stop(void);
00276     HRESULT Pause(void);
00277 
00278     HRESULT Run(REFERENCE_TIME tStart);
00279 
00280     HRESULT GetState(
00281         [in] DWORD dwMilliSecsTimeout,
00282         [out] FILTER_STATE *State);
00283 
00284     HRESULT SetSyncSource(
00285         [in] IReferenceClock * pClock);
00286 
00287     HRESULT GetSyncSource(
00288         [out] IReferenceClock ** pClock);
00289 }
00290 
00291 typedef IMediaFilter *PMEDIAFILTER;
00292 
00293 [
00294 object,
00295 uuid(56a86895-0ad4-11ce-b03a-0020af0ba770),
00296 pointer_default(unique)
00297 ]
00298 interface IBaseFilter : IMediaFilter
00299 {
00300     typedef struct _FilterInfo
00301     {
00302         WCHAR achName[MAX_FILTER_NAME];
00303         IFilterGraph * pGraph;
00304     } FILTER_INFO;
00305 
00306     HRESULT EnumPins(
00307         [out] IEnumPins ** ppEnum);
00308 
00309     HRESULT FindPin(
00310         [in, string] LPCWSTR Id,
00311         [out] IPin ** ppPin);
00312 
00313     HRESULT QueryFilterInfo(
00314         [out] FILTER_INFO * pInfo);
00315 
00316     HRESULT JoinFilterGraph(
00317         [in] IFilterGraph * pGraph,
00318         [in, string] LPCWSTR pName);
00319 
00320     HRESULT QueryVendorInfo(
00321         [out, string] LPWSTR* pVendorInfo);
00322 }
00323 
00324 typedef IBaseFilter *PFILTER;
00325 
00326 [
00327 object,
00328 uuid(56a86897-0ad4-11ce-b03a-0020af0ba770),
00329 pointer_default(unique)
00330 ]
00331 interface IReferenceClock : IUnknown
00332 {
00333     HRESULT GetTime(
00334         [out] REFERENCE_TIME *pTime);
00335 
00336     HRESULT AdviseTime(
00337         [in] REFERENCE_TIME baseTime,
00338         [in] REFERENCE_TIME streamTime,
00339         [in] HEVENT hEvent,
00340         [out] DWORD_PTR * pdwAdviseCookie);
00341 
00342     HRESULT AdvisePeriodic(
00343         [in] REFERENCE_TIME startTime,
00344         [in] REFERENCE_TIME periodTime,
00345         [in] HSEMAPHORE hSemaphore,
00346         [out] DWORD_PTR * pdwAdviseCookie);
00347 
00348     HRESULT Unadvise(
00349         [in] DWORD_PTR dwAdviseCookie);
00350 }
00351 
00352 typedef IReferenceClock *PREFERENCECLOCK;
00353 
00354 
00355 [
00356 local,
00357 object,
00358 uuid(ebec459c-2eca-4d42-a8af-30df557614b8),
00359 pointer_default(unique)
00360 ]
00361 interface IReferenceClockTimerControl : IUnknown {
00362 
00363     HRESULT SetDefaultTimerResolution(
00364         REFERENCE_TIME timerResolution);
00365     HRESULT GetDefaultTimerResolution(
00366         [out] REFERENCE_TIME* pTimerResolution);
00367 }
00368 
00369 
00370 /*
00371 [
00372 object,
00373 uuid(36b73885-c2c8-11cf-8b46-00805f6cef60),
00374 pointer_default(unique)
00375 ]
00376 interface IReferenceClock2 : IReferenceClock
00377 {
00378 }
00379 
00380 typedef IReferenceClock2 *PREFERENCECLOCK2;
00381 
00382 */
00383 
00384 [
00385 local,
00386 object,
00387 uuid(56a8689a-0ad4-11ce-b03a-0020af0ba770),
00388 pointer_default(unique)
00389 ]
00390 interface IMediaSample : IUnknown
00391 {
00392     HRESULT GetPointer([out] BYTE ** ppBuffer);
00393 
00394     long GetSize(void);
00395 
00396     HRESULT GetTime(
00397         [out] REFERENCE_TIME * pTimeStart,
00398         [out] REFERENCE_TIME * pTimeEnd);
00399 
00400     HRESULT SetTime(
00401         [in] REFERENCE_TIME * pTimeStart,
00402         [in] REFERENCE_TIME * pTimeEnd);
00403 
00404     HRESULT IsSyncPoint(void);
00405 
00406     HRESULT SetSyncPoint(BOOL bIsSyncPoint);
00407 
00408     HRESULT IsPreroll(void);
00409 
00410     HRESULT SetPreroll(BOOL bIsPreroll);
00411 
00412     LONG GetActualDataLength(void);
00413 
00414     HRESULT SetActualDataLength(LONG length);
00415 
00416     HRESULT GetMediaType(AM_MEDIA_TYPE **ppMediaType);
00417 
00418     HRESULT SetMediaType(AM_MEDIA_TYPE *pMediaType);
00419 
00420     HRESULT IsDiscontinuity(void);
00421 
00422     HRESULT SetDiscontinuity(BOOL bDiscontinuity);
00423 
00424     HRESULT GetMediaTime(
00425         [out] LONGLONG * pTimeStart,
00426         [out] LONGLONG * pTimeEnd);
00427 
00428     HRESULT SetMediaTime(
00429         [in] LONGLONG * pTimeStart,
00430         [in] LONGLONG * pTimeEnd);
00431 }
00432 
00433 typedef IMediaSample *PMEDIASAMPLE;
00434 
00435 enum tagAM_SAMPLE_PROPERTY_FLAGS
00436 {
00437        AM_SAMPLE_SPLICEPOINT        = 0x01,
00438        AM_SAMPLE_PREROLL            = 0x02,
00439        AM_SAMPLE_DATADISCONTINUITY  = 0x04,
00440        AM_SAMPLE_TYPECHANGED        = 0x08,
00441        AM_SAMPLE_TIMEVALID          = 0x10,
00442        AM_SAMPLE_TIMEDISCONTINUITY  = 0x40,
00443        AM_SAMPLE_FLUSH_ON_PAUSE     = 0x80,
00444        AM_SAMPLE_STOPVALID          = 0x100,
00445        AM_SAMPLE_ENDOFSTREAM        = 0x200,
00446        AM_STREAM_MEDIA              = 0,
00447        AM_STREAM_CONTROL            = 1
00448 };
00449 
00450 typedef struct tagAM_SAMPLE2_PROPERTIES
00451 {
00452     DWORD    cbData;
00453     DWORD    dwTypeSpecificFlags;
00454     DWORD    dwSampleFlags;
00455     LONG     lActual;
00456     REFERENCE_TIME tStart;
00457     REFERENCE_TIME tStop;
00458     DWORD    dwStreamId;
00459     AM_MEDIA_TYPE *pMediaType;
00460     BYTE    *pbBuffer;
00461     LONG     cbBuffer;
00462 } AM_SAMPLE2_PROPERTIES;
00463 
00464 [
00465         local,
00466         object,
00467         uuid(36b73884-c2c8-11cf-8b46-00805f6cef60),
00468         pointer_default(unique)
00469 ]
00470 interface IMediaSample2 : IMediaSample
00471 {
00472     HRESULT GetProperties(
00473         [in] DWORD cbProperties,
00474         [out, size_is(cbProperties)] BYTE * pbProperties
00475     );
00476 
00477     HRESULT SetProperties(
00478         [in] DWORD cbProperties,
00479         [in, size_is(cbProperties)] const BYTE * pbProperties
00480     );
00481 }
00482 
00483 typedef IMediaSample2 *PMEDIASAMPLE2;
00484 
00485 #define AM_GBF_PREVFRAMESKIPPED 1
00486 #define AM_GBF_NOTASYNCPOINT    2
00487 cpp_quote("#define AM_GBF_PREVFRAMESKIPPED 1")
00488 cpp_quote("#define AM_GBF_NOTASYNCPOINT 2")
00489 
00490 cpp_quote("#define AM_GBF_NOWAIT 4")
00491 
00492 [
00493 object,
00494 uuid(56a8689c-0ad4-11ce-b03a-0020af0ba770),
00495 pointer_default(unique)
00496 ]
00497 interface IMemAllocator : IUnknown
00498 {
00499     HRESULT SetProperties(
00500         [in] ALLOCATOR_PROPERTIES* pRequest,
00501         [out] ALLOCATOR_PROPERTIES* pActual);
00502 
00503     HRESULT GetProperties(
00504         [out] ALLOCATOR_PROPERTIES* pProps);
00505 
00506     HRESULT Commit(void);
00507 
00508     HRESULT Decommit(void);
00509 
00510     HRESULT GetBuffer(
00511         [out] IMediaSample **ppBuffer,
00512         [in] REFERENCE_TIME * pStartTime,
00513         [in] REFERENCE_TIME * pEndTime,
00514         [in] DWORD dwFlags);
00515 
00516     HRESULT ReleaseBuffer(
00517         [in] IMediaSample *pBuffer);
00518 }
00519 
00520 typedef IMemAllocator *PMEMALLOCATOR;
00521 
00522 [
00523 object,
00524 uuid(379a0cf0-c1de-11d2-abf5-00a0c905f375),
00525 pointer_default(unique)
00526 ]
00527 interface IMemAllocatorCallbackTemp : IMemAllocator
00528 {
00529     HRESULT SetNotify(
00530         [in] IMemAllocatorNotifyCallbackTemp *pNotify);
00531 
00532     HRESULT GetFreeCount(
00533         [out] LONG *plBuffersFree);
00534 }
00535 
00536 [
00537 object,
00538 uuid(92980b30-c1de-11d2-abf5-00a0c905f375),
00539 pointer_default(unique)
00540 ]
00541 interface IMemAllocatorNotifyCallbackTemp : IUnknown
00542 {
00543     HRESULT NotifyRelease();
00544 }
00545 
00546 [
00547 object,
00548 uuid(56a8689d-0ad4-11ce-b03a-0020af0ba770),
00549 pointer_default(unique)
00550 ]
00551 interface IMemInputPin : IUnknown
00552 {
00553     HRESULT GetAllocator(
00554         [out] IMemAllocator ** ppAllocator);
00555 
00556     HRESULT NotifyAllocator(
00557         [in] IMemAllocator * pAllocator,
00558         [in] BOOL bReadOnly);
00559 
00560     HRESULT GetAllocatorRequirements( [out] ALLOCATOR_PROPERTIES*pProps );
00561 
00562     HRESULT Receive(
00563         [in] IMediaSample * pSample);
00564 
00565     HRESULT ReceiveMultiple(
00566         [in, size_is(nSamples)] IMediaSample **pSamples,
00567         [in] long nSamples,
00568         [out] long *nSamplesProcessed);
00569 
00570     HRESULT ReceiveCanBlock();
00571 }
00572 
00573 typedef IMemInputPin *PMEMINPUTPIN;
00574 
00575 [
00576 object,
00577 uuid(a3d8cec0-7e5a-11cf-bbc5-00805f6cef20),
00578 pointer_default(unique)
00579 ]
00580 interface IAMovieSetup : IUnknown
00581 {
00582     HRESULT Register( );
00583     HRESULT Unregister( );
00584 }
00585 
00586 typedef IAMovieSetup *PAMOVIESETUP;
00587 
00588 typedef enum AM_SEEKING_SeekingFlags
00589 {
00590     AM_SEEKING_NoPositioning            = 0x00,
00591     AM_SEEKING_AbsolutePositioning      = 0x01,
00592     AM_SEEKING_RelativePositioning      = 0x02,
00593     AM_SEEKING_IncrementalPositioning   = 0x03,
00594     AM_SEEKING_PositioningBitsMask      = 0x03,
00595     AM_SEEKING_SeekToKeyFrame           = 0x04,
00596     AM_SEEKING_ReturnTime               = 0x08,
00597     AM_SEEKING_Segment                  = 0x10,
00598     AM_SEEKING_NoFlush                  = 0x20
00599 } AM_SEEKING_SEEKING_FLAGS;
00600 
00601 typedef enum AM_SEEKING_SeekingCapabilities
00602 {
00603     AM_SEEKING_CanSeekAbsolute     = 0x001,
00604     AM_SEEKING_CanSeekForwards     = 0x002,
00605     AM_SEEKING_CanSeekBackwards    = 0x004,
00606     AM_SEEKING_CanGetCurrentPos    = 0x008,
00607     AM_SEEKING_CanGetStopPos       = 0x010,
00608     AM_SEEKING_CanGetDuration      = 0x020,
00609     AM_SEEKING_CanPlayBackwards    = 0x040,
00610     AM_SEEKING_CanDoSegments       = 0x080,
00611     AM_SEEKING_Source              = 0x100
00612 } AM_SEEKING_SEEKING_CAPABILITIES;
00613 
00614 [
00615 object,
00616 uuid(36b73880-c2c8-11cf-8b46-00805f6cef60),
00617 pointer_default(unique)
00618 ]
00619 interface IMediaSeeking : IUnknown
00620 {
00621     HRESULT GetCapabilities( [out] DWORD * pCapabilities );
00622 
00623     HRESULT CheckCapabilities( [in,out] DWORD * pCapabilities );
00624 
00625     HRESULT IsFormatSupported([in] const GUID * pFormat);
00626 
00627     HRESULT QueryPreferredFormat([out] GUID * pFormat);
00628 
00629     HRESULT GetTimeFormat([out] GUID *pFormat);
00630 
00631     HRESULT IsUsingTimeFormat([in] const GUID * pFormat);
00632 
00633     HRESULT SetTimeFormat([in] const GUID * pFormat);
00634 
00635     HRESULT GetDuration([out] LONGLONG *pDuration);
00636 
00637     HRESULT GetStopPosition([out] LONGLONG *pStop);
00638 
00639     HRESULT GetCurrentPosition([out] LONGLONG *pCurrent);
00640 
00641     HRESULT ConvertTimeFormat([out] LONGLONG * pTarget, [in] const GUID * pTargetFormat,
00642                               [in]  LONGLONG    Source, [in] const GUID * pSourceFormat );
00643 
00644     HRESULT SetPositions(
00645         [in,out] LONGLONG * pCurrent,
00646         [in] DWORD dwCurrentFlags,
00647         [in,out] LONGLONG * pStop,
00648         [in] DWORD dwStopFlags);
00649 
00650     HRESULT GetPositions(
00651         [out] LONGLONG * pCurrent,
00652         [out] LONGLONG * pStop);
00653 
00654     HRESULT GetAvailable(
00655         [out] LONGLONG * pEarliest,
00656         [out] LONGLONG * pLatest);
00657 
00658     HRESULT SetRate([in]  double dRate);
00659 
00660     HRESULT GetRate([out] double * pdRate);
00661 
00662     HRESULT GetPreroll([out] LONGLONG * pllPreroll);
00663 }
00664 
00665 typedef IMediaSeeking *PMEDIASEEKING;
00666 
00667 enum tagAM_MEDIAEVENT_FLAGS
00668 {
00669     AM_MEDIAEVENT_NONOTIFY = 0x01
00670 };

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.