summaryrefslogtreecommitdiff
path: root/src/libw32dll/DirectShow/interfaces.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libw32dll/DirectShow/interfaces.h')
-rw-r--r--src/libw32dll/DirectShow/interfaces.h346
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 */