diff options
author | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-03-20 00:05:27 +0000 |
---|---|---|
committer | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-03-20 00:05:27 +0000 |
commit | fbe693a169b346b4b4e48ee39017cf86b594429b (patch) | |
tree | f2a0d6aae01e6a560ce75bba7f68f53890b5b9b9 /loader/dshow/interfaces.h | |
parent | caf48a3f5da35dd2e183da9f34ed265bf082856f (diff) | |
download | mpv-fbe693a169b346b4b4e48ee39017cf86b594429b.tar.bz2 mpv-fbe693a169b346b4b4e48ee39017cf86b594429b.tar.xz |
Initial revision
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@169 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'loader/dshow/interfaces.h')
-rw-r--r-- | loader/dshow/interfaces.h | 417 |
1 files changed, 417 insertions, 0 deletions
diff --git a/loader/dshow/interfaces.h b/loader/dshow/interfaces.h new file mode 100644 index 0000000000..355264c666 --- /dev/null +++ b/loader/dshow/interfaces.h @@ -0,0 +1,417 @@ +/* + + Definition of important DirectShow interfaces. + Created using freely-available DirectX 8.0 SDK + ( http://msdn.microsoft.com ) + +*/ +#ifndef INTERFACES_H +#define INTERFACES_H + +#include "guids.h" +#include "default.h" +#include <com.h> +#ifndef STDCALL +#define STDCALL __attribute__((__stdcall__)) +#endif + +typedef GUID& REFIID; +typedef GUID CLSID; +typedef GUID IID; + +/* Sh*t. MSVC++ and g++ use different methods of storing vtables. */ + +struct IBaseFilter; +struct IReferenceClock; +struct IEnumPins; +struct IEnumMediaTypes; +struct IPin; +struct IFilterGraph; +struct IMemInputPin; +struct IMemAllocator; +struct IMediaSample; + +enum PIN_DIRECTION; + +class IClassFactory2 +{ +public: + virtual long STDCALL QueryInterface(GUID* iid, void** ppv) =0; + virtual long STDCALL AddRef() =0; + virtual long STDCALL Release() =0; + virtual long STDCALL CreateInstance(IUnknown* pUnkOuter, GUID* riid, void** ppvObject) =0; +}; + +struct IBaseFilter_vt: IUnknown_vt +{ + HRESULT STDCALL ( *GetClassID )( + IBaseFilter * This, + /* [out] */ CLSID *pClassID); + + HRESULT STDCALL ( *Stop )( + IBaseFilter * This); + + HRESULT STDCALL ( *Pause )( + IBaseFilter * This); + + HRESULT STDCALL ( *Run )( + IBaseFilter * This, + REFERENCE_TIME tStart); + + HRESULT STDCALL ( *GetState )( + IBaseFilter * This, + /* [in] */ unsigned long dwMilliSecsTimeout, +// /* [out] */ FILTER_STATE *State); + void* State); + + HRESULT STDCALL ( *SetSyncSource )( + IBaseFilter * This, + /* [in] */ IReferenceClock *pClock); + + HRESULT STDCALL ( *GetSyncSource )( + IBaseFilter * This, + /* [out] */ IReferenceClock **pClock); + + HRESULT STDCALL ( *EnumPins )( + IBaseFilter * This, + /* [out] */ IEnumPins **ppEnum); + + HRESULT STDCALL ( *FindPin )( + IBaseFilter * This, + /* [string][in] */ const unsigned short* Id, + /* [out] */ IPin **ppPin); + + HRESULT STDCALL ( *QueryFilterInfo )( + IBaseFilter * This, +// /* [out] */ FILTER_INFO *pInfo); + void* pInfo); + + HRESULT STDCALL ( *JoinFilterGraph )( + IBaseFilter * This, + /* [in] */ IFilterGraph *pGraph, + /* [string][in] */ const unsigned short* pName); + + HRESULT STDCALL ( *QueryVendorInfo )( + IBaseFilter * This, + /* [string][out] */ unsigned short* *pVendorInfo); + +}; + +struct IBaseFilter +{ + struct IBaseFilter_vt *vt; +}; + +struct IEnumPins_vt: IUnknown_vt +{ + HRESULT STDCALL ( *Next )( + IEnumPins * This, + /* [in] */ unsigned long cPins, + /* [size_is][out] */ IPin **ppPins, + /* [out] */ unsigned long *pcFetched); + + HRESULT STDCALL ( *Skip )( + IEnumPins * This, + /* [in] */ unsigned long cPins); + + HRESULT STDCALL ( *Reset )( + IEnumPins * This); + + HRESULT STDCALL ( *Clone )( + IEnumPins * This, + /* [out] */ IEnumPins **ppEnum); + +}; + +struct IEnumPins +{ + struct IEnumPins_vt *vt; +}; + + +struct IPin_vt: IUnknown_vt +{ + HRESULT STDCALL ( *Connect )( + IPin * This, + /* [in] */ IPin *pReceivePin, + /* [in] */ /*const*/ AM_MEDIA_TYPE *pmt); + + HRESULT STDCALL ( *ReceiveConnection )( + IPin * This, + /* [in] */ IPin *pConnector, + /* [in] */ const AM_MEDIA_TYPE *pmt); + + HRESULT STDCALL ( *Disconnect )( + IPin * This); + + HRESULT STDCALL ( *ConnectedTo )( + IPin * This, + /* [out] */ IPin **pPin); + + HRESULT STDCALL ( *ConnectionMediaType )( + IPin * This, + /* [out] */ AM_MEDIA_TYPE *pmt); + + HRESULT STDCALL ( *QueryPinInfo )( + IPin * This, + /* [out] */ PIN_INFO *pInfo); + + HRESULT STDCALL ( *QueryDirection )( + IPin * This, + /* [out] */ PIN_DIRECTION *pPinDir); + + HRESULT STDCALL ( *QueryId )( + IPin * This, + /* [out] */ unsigned short* *Id); + + HRESULT STDCALL ( *QueryAccept )( + IPin * This, + /* [in] */ const AM_MEDIA_TYPE *pmt); + + HRESULT STDCALL ( *EnumMediaTypes )( + IPin * This, + /* [out] */ IEnumMediaTypes **ppEnum); + + HRESULT STDCALL ( *QueryInternalConnections )( + IPin * This, + /* [out] */ IPin **apPin, + /* [out][in] */ unsigned long *nPin); + + HRESULT STDCALL ( *EndOfStream )( + IPin * This); + + HRESULT STDCALL ( *BeginFlush )( + IPin * This); + + HRESULT STDCALL ( *EndFlush )( + IPin * This); + + HRESULT STDCALL ( *NewSegment )( + IPin * This, + /* [in] */ REFERENCE_TIME tStart, + /* [in] */ REFERENCE_TIME tStop, + /* [in] */ double dRate); + +}; + +struct IPin +{ + IPin_vt *vt; +}; + +struct IEnumMediaTypes_vt: IUnknown_vt +{ + HRESULT STDCALL ( *Next )( + IEnumMediaTypes * This, + /* [in] */ unsigned long cMediaTypes, + /* [size_is][out] */ AM_MEDIA_TYPE **ppMediaTypes, + /* [out] */ unsigned long *pcFetched); + + HRESULT STDCALL ( *Skip )( + IEnumMediaTypes * This, + /* [in] */ unsigned long cMediaTypes); + + HRESULT STDCALL ( *Reset )( + IEnumMediaTypes * This); + + HRESULT STDCALL ( *Clone )( + IEnumMediaTypes * This, + /* [out] */ IEnumMediaTypes **ppEnum); +}; + +struct IEnumMediaTypes +{ + IEnumMediaTypes_vt *vt; +}; + + +struct IMemInputPin_vt: IUnknown_vt +{ + HRESULT STDCALL ( *GetAllocator )( + IMemInputPin * This, + /* [out] */ IMemAllocator **ppAllocator); + + HRESULT STDCALL ( *NotifyAllocator )( + IMemInputPin * This, + /* [in] */ IMemAllocator *pAllocator, + /* [in] */ int bReadOnly); + + HRESULT STDCALL ( *GetAllocatorRequirements )( + IMemInputPin * This, + /* [out] */ ALLOCATOR_PROPERTIES *pProps); + + HRESULT STDCALL ( *Receive )( + IMemInputPin * This, + /* [in] */ IMediaSample *pSample); + + HRESULT STDCALL ( *ReceiveMultiple )( + IMemInputPin * This, + /* [size_is][in] */ IMediaSample **pSamples, + /* [in] */ long nSamples, + /* [out] */ long *nSamplesProcessed); + + HRESULT STDCALL ( *ReceiveCanBlock )( + IMemInputPin * This); +}; + +struct IMemInputPin +{ + IMemInputPin_vt *vt; +}; + + + +struct IMemAllocator_vt: IUnknown_vt +{ + HRESULT STDCALL ( *SetProperties )( + IMemAllocator * This, + /* [in] */ ALLOCATOR_PROPERTIES *pRequest, + /* [out] */ ALLOCATOR_PROPERTIES *pActual); + + HRESULT STDCALL ( *GetProperties )( + IMemAllocator * This, + /* [out] */ ALLOCATOR_PROPERTIES *pProps); + + HRESULT STDCALL ( *Commit )( + IMemAllocator * This); + + HRESULT STDCALL ( *Decommit )( + IMemAllocator * This); + + HRESULT STDCALL ( *GetBuffer )( + IMemAllocator * This, + /* [out] */ IMediaSample **ppBuffer, + /* [in] */ REFERENCE_TIME *pStartTime, + /* [in] */ REFERENCE_TIME *pEndTime, + /* [in] */ unsigned long dwFlags); + + HRESULT STDCALL ( *ReleaseBuffer )( + IMemAllocator * This, + /* [in] */ IMediaSample *pBuffer); +}; + +struct IMemAllocator +{ + IMemAllocator_vt *vt; +}; + +struct IMediaSample_vt: IUnknown_vt +{ + HRESULT STDCALL ( *GetPointer )( + IMediaSample * This, + /* [out] */ unsigned char **ppBuffer); + + long STDCALL ( *GetSize )( + IMediaSample * This); + + HRESULT STDCALL ( *GetTime )( + IMediaSample * This, + /* [out] */ REFERENCE_TIME *pTimeStart, + /* [out] */ REFERENCE_TIME *pTimeEnd); + + HRESULT STDCALL ( *SetTime )( + IMediaSample * This, + /* [in] */ REFERENCE_TIME *pTimeStart, + /* [in] */ REFERENCE_TIME *pTimeEnd); + + HRESULT STDCALL ( *IsSyncPoint )( + IMediaSample * This); + + HRESULT STDCALL ( *SetSyncPoint )( + IMediaSample * This, + long bIsSyncPoint); + + HRESULT STDCALL ( *IsPreroll )( + IMediaSample * This); + + HRESULT STDCALL ( *SetPreroll )( + IMediaSample * This, + long bIsPreroll); + + long STDCALL ( *GetActualDataLength )( + IMediaSample * This); + + HRESULT STDCALL ( *SetActualDataLength )( + IMediaSample * This, + long __MIDL_0010); + + HRESULT STDCALL ( *GetMediaType )( + IMediaSample * This, + AM_MEDIA_TYPE **ppMediaType); + + HRESULT STDCALL ( *SetMediaType )( + IMediaSample * This, + AM_MEDIA_TYPE *pMediaType); + + HRESULT STDCALL ( *IsDiscontinuity )( + IMediaSample * This); + + HRESULT STDCALL ( *SetDiscontinuity )( + IMediaSample * This, + long bDiscontinuity); + + HRESULT STDCALL ( *GetMediaTime )( + IMediaSample * This, + /* [out] */ long long *pTimeStart, + /* [out] */ long long *pTimeEnd); + + HRESULT STDCALL ( *SetMediaTime )( + IMediaSample * This, + /* [in] */ long long *pTimeStart, + /* [in] */ long long *pTimeEnd); +}; + +struct IMediaSample +{ + struct IMediaSample_vt *vt; +}; + +struct IHidden; +struct IHidden_vt: IUnknown_vt +{ + HRESULT STDCALL ( *GetSmth )(IHidden * This, + int* pv); + HRESULT STDCALL ( *SetSmth )(IHidden * This, + int v1, int v2); + HRESULT STDCALL ( *GetSmth2 )(IHidden * This, + int* pv); + HRESULT STDCALL ( *SetSmth2 )(IHidden * This, + int v1, int v2); + HRESULT STDCALL ( *GetSmth3 )(IHidden * This, + int* pv); + HRESULT STDCALL ( *SetSmth3 )(IHidden * This, + int v1, int v2); + HRESULT STDCALL ( *GetSmth4 )(IHidden * This, + int* pv); + HRESULT STDCALL ( *SetSmth4 )(IHidden * This, + int v1, int v2); + HRESULT STDCALL ( *GetSmth5 )(IHidden * This, + int* pv); + HRESULT STDCALL ( *SetSmth5 )(IHidden * This, + int v1, int v2); + HRESULT STDCALL ( *GetSmth6 )(IHidden * This, + int* pv); +}; + +struct IHidden +{ + struct IHidden_vt *vt; +}; + +struct IHidden2; +struct IHidden2_vt: IUnknown_vt +{ + HRESULT STDCALL (*unk1) (); + HRESULT STDCALL (*unk2) (); + HRESULT STDCALL (*unk3) (); + HRESULT STDCALL (*DecodeGet) (IHidden2* This, int* region); + HRESULT STDCALL (*unk5) (); + HRESULT STDCALL (*DecodeSet) (IHidden2* This, int* region); + HRESULT STDCALL (*unk7) (); + HRESULT STDCALL (*unk8) (); +}; +struct IHidden2 +{ + struct IHidden2_vt *vt; +}; +#endif
\ No newline at end of file |