diff options
author | sesse <sesse@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-03-08 19:57:37 +0000 |
---|---|---|
committer | sesse <sesse@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-03-08 19:57:37 +0000 |
commit | 18deeb4aff87e89f3e5bd9247d8f96449316bb25 (patch) | |
tree | 4054f6886a084f473e35b6cbc19656fedaae6d94 /loader/dshow/interfaces.h | |
parent | 9b67104eb7bb5832a4b9d5fef92dd23b4befeb14 (diff) | |
download | mpv-18deeb4aff87e89f3e5bd9247d8f96449316bb25.tar.bz2 mpv-18deeb4aff87e89f3e5bd9247d8f96449316bb25.tar.xz |
Implement DirectShow filter graph.
DirectShow specifies that a filter (codec) can expect JoinFilterGraph
to be called, and store a reference to the graph manager. Implement a
very bare-bones graph manager (all functions are stubs, and no extra
interfaces are implemented) and give it to the codec on init.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30866 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'loader/dshow/interfaces.h')
-rw-r--r-- | loader/dshow/interfaces.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/loader/dshow/interfaces.h b/loader/dshow/interfaces.h index 5c927a55be..af9544ada5 100644 --- a/loader/dshow/interfaces.h +++ b/loader/dshow/interfaces.h @@ -329,4 +329,32 @@ struct IDivxFilterInterface_vt HRESULT STDCALL ( *get_AspectRatio )(IDivxFilterInterface* This, int* x, IDivxFilterInterface* Thisit, int* y); }; +typedef struct IEnumFilters IEnumFilters; + +typedef struct IFilterGraph_vt +{ + INHERIT_IUNKNOWN(); + + HRESULT STDCALL ( *AddFilter )(IFilterGraph* This, + /* [in] */ IBaseFilter* pFilter, + /* [string][in] */ unsigned short* pName); + HRESULT STDCALL ( *RemoveFilter )(IFilterGraph* This, + /* [in] */ IBaseFilter* pFilter); + HRESULT STDCALL ( *EnumFilters )(IFilterGraph* This, + /* [out] */ IEnumFilters** ppEnum); + HRESULT STDCALL ( *FindFilterByName )(IFilterGraph* This, + /* [string][in] */ unsigned short* pName, + /* [out] */ IBaseFilter** ppFilter); + HRESULT STDCALL ( *ConnectDirect )(IFilterGraph* This, + /* [in] */ IPin* ppinOut, + /* [in] */ IPin* ppinIn, + /* [in] */ const AM_MEDIA_TYPE* pmt); + HRESULT STDCALL ( *Reconnect )(IFilterGraph* This, + /* [in] */ IPin* ppin); + HRESULT STDCALL ( *Disconnect )(IFilterGraph* This, + /* [in] */ IPin* ppin); + HRESULT STDCALL ( *SetDefaultSyncSource )(IFilterGraph* This); +} IFilterGraph_vt; +struct IFilterGraph { IFilterGraph_vt *vt; }; + #endif /*MPLAYER_INTERFACES_H */ |