summaryrefslogtreecommitdiffstats
path: root/loader/dshow/graph.h
blob: 62423960a0ea0e33704749275fdf43367091c6ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef MPLAYER_GRAPH_H
#define MPLAYER_GRAPH_H

#include "interfaces.h"
#include "cmediasample.h"

typedef struct FilterGraph FilterGraph;

struct FilterGraph
{
    IFilterGraph_vt* vt;
    DECLARE_IUNKNOWN();
    GUID interfaces[2];

    HRESULT STDCALL ( *AddFilter )(FilterGraph* This,
                                   /* [in] */ IBaseFilter* pFilter,
                                   /* [string][in] */ unsigned short* pName);
    HRESULT STDCALL ( *RemoveFilter )(FilterGraph* This,
                                      /* [in] */ IBaseFilter* pFilter);
    HRESULT STDCALL ( *EnumFilters )(FilterGraph* This,
                                     /* [out] */ IEnumFilters** ppEnum);
    HRESULT STDCALL ( *FindFilterByName )(FilterGraph* This,
                                          /* [string][in] */ unsigned short* pName,
                                          /* [out] */ IBaseFilter** ppFilter);
    HRESULT STDCALL ( *ConnectDirect )(FilterGraph* This,
                                       /* [in] */ IPin* ppinOut,
                                       /* [in] */ IPin* ppinIn,
                                       /* [in] */ const AM_MEDIA_TYPE* pmt);
    HRESULT STDCALL ( *Reconnect )(FilterGraph* This,
                                   /* [in] */ IPin* ppin);
    HRESULT STDCALL ( *Disconnect )(FilterGraph* This,
                                    /* [in] */ IPin* ppin);
    HRESULT STDCALL ( *SetDefaultSyncSource )(FilterGraph* This);
};

FilterGraph* FilterGraphCreate(void);

#endif /* MPLAYER_GRAPH_H */