summaryrefslogtreecommitdiffstats
path: root/loader/dshow/graph.h
blob: 45697d5e8b29bd0001f43b4b1ad293670d15f0d0 (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
#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 */