diff options
Diffstat (limited to 'src/libw32dll/DirectShow/interfaces.h')
-rw-r--r-- | src/libw32dll/DirectShow/interfaces.h | 346 |
1 files changed, 346 insertions, 0 deletions
diff --git a/src/libw32dll/DirectShow/interfaces.h b/src/libw32dll/DirectShow/interfaces.h new file mode 100644 index 000000000..88ef7e4e9 --- /dev/null +++ b/src/libw32dll/DirectShow/interfaces.h @@ -0,0 +1,346 @@ +#ifndef DS_INTERFACES_H +#define DS_INTERFACES_H + +/* + +Definition of important DirectShow interfaces. +Created using freely-available DirectX 8.0 SDK +( http://msdn.microsoft.com ) + +*/ + +#include "../wine/com.h" +#include "guids.h" +#include "iunk.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. */ + + +/*typedef struct _IBaseFilter IBaseFilter;*/ +typedef struct _IReferenceClock IReferenceClock; +typedef struct _IEnumPins IEnumPins; +typedef struct _IEnumMediaTypes IEnumMediaTypes; +typedef struct _IPin IPin; +typedef struct _IFilterGraph IFilterGraph; +typedef struct _IMemInputPin IMemInputPin; +typedef struct _IMemAllocator IMemAllocator; +typedef struct _IMediaSample IMediaSample; +typedef struct _IHidden IHidden; +typedef struct _IHidden2 IHidden2; +typedef struct _IDivxFilterInterface IDivxFilterInterface; + +typedef struct _IBaseFilter_vt IBaseFilter_vt; +typedef struct _IReferenceClock_vt IReferenceClock_vt; +typedef struct _IEnumPins_vt IEnumPins_vt; +typedef struct _IEnumMediaTypes_vt IEnumMediaTypes_vt; +typedef struct _IPin_vt IPin_vt; +typedef struct _IFilterGraph_vt IFilterGraph_vt; +typedef struct _IMemInputPin_vt IMemInputPin_vt; +typedef struct _IMemAllocator_vt IMemAllocator_vt; +typedef struct _IMediaSample_vt IMediaSample_vt; +typedef struct _IHidden_vt IHidden_vt; +typedef struct _IHidden2_vt IHidden2_vt; +typedef struct _IDivxFilterInterface_vt IDivxFilterInterface_vt; + + +enum PIN_DIRECTION; + +/* +class IClassFactory2 +{ +public: + virtual long STDCALL QueryInterface(GUID* iid, void** ppv) =0; + virtual long STDCALL AddRef(void) =0; + virtual long STDCALL Release(void) =0; + virtual long STDCALL CreateInstance(IUnknown* pUnkOuter, GUID* riid, void** ppvObject) =0; +}; +*/ + +struct _IBaseFilter_vt +{ + INHERIT_IUNKNOWN(); + + 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 +{ + INHERIT_IUNKNOWN(); + + 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 +{ + INHERIT_IUNKNOWN(); + + 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 +{ + INHERIT_IUNKNOWN(); + + 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 +{ + INHERIT_IUNKNOWN(); + + 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 +{ + INHERIT_IUNKNOWN(); + + 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 +{ + INHERIT_IUNKNOWN(); + + 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_vt +{ + INHERIT_IUNKNOWN(); + + 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_vt +{ + INHERIT_IUNKNOWN(); + + HRESULT STDCALL ( *unk1 )(void); + HRESULT STDCALL ( *unk2 )(void); + HRESULT STDCALL ( *unk3 )(void); + HRESULT STDCALL ( *DecodeGet )(IHidden2* This, int* region); + HRESULT STDCALL ( *unk5 )(void); + HRESULT STDCALL ( *DecodeSet )(IHidden2* This, int* region); + HRESULT STDCALL ( *unk7 )(void); + HRESULT STDCALL ( *unk8 )(void); +}; + +struct _IHidden2 +{ + struct _IHidden2_vt *vt; +}; + +struct _IDivxFilterInterface +{ + struct _IDivxFilterInterface_vt* vt; +}; + +struct _IDivxFilterInterface_vt +{ + INHERIT_IUNKNOWN(); + + HRESULT STDCALL ( *get_PPLevel )(IDivxFilterInterface* This, int* PPLevel); // current postprocessing level + HRESULT STDCALL ( *put_PPLevel )(IDivxFilterInterface* This, int PPLevel); // new postprocessing level + HRESULT STDCALL ( *put_DefaultPPLevel )(IDivxFilterInterface* This); + HRESULT STDCALL ( *put_MaxDelayAllowed )(IDivxFilterInterface* This, int maxdelayallowed); + HRESULT STDCALL ( *put_Brightness )(IDivxFilterInterface* This, int brightness); + HRESULT STDCALL ( *put_Contrast )(IDivxFilterInterface* This, int contrast); + HRESULT STDCALL ( *put_Saturation )(IDivxFilterInterface* This, int saturation); + HRESULT STDCALL ( *get_MaxDelayAllowed )(IDivxFilterInterface* This, int* maxdelayallowed); + HRESULT STDCALL ( *get_Brightness)(IDivxFilterInterface* This, int* brightness); + HRESULT STDCALL ( *get_Contrast)(IDivxFilterInterface* This, int* contrast); + HRESULT STDCALL ( *get_Saturation )(IDivxFilterInterface* This, int* saturation); + HRESULT STDCALL ( *put_AspectRatio )(IDivxFilterInterface* This, int x, IDivxFilterInterface* This2, int y); + HRESULT STDCALL ( *get_AspectRatio )(IDivxFilterInterface* This, int* x, IDivxFilterInterface* This2, int* y); +}; +#endif /* DS_INTERFACES_H */ |