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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
/* "output pin" - the one that connects to output of filter. */
#ifndef OUTPUTPIN_H
#define OUTPUTPIN_H
#include "interfaces.h"
#include "guids.h"
#include "default.h"
class COutputPin: public IPin, public IMemInputPin
{
int refcount;
AM_MEDIA_TYPE type;
IPin* remote;
char** frame_pointer;
long* frame_size_pointer;
public:
COutputPin(const AM_MEDIA_TYPE& vhdr);
~COutputPin(){delete IPin::vt; delete IMemInputPin::vt;}
void SetFramePointer(char** z){frame_pointer=z;}
void SetFrameSizePointer(long* z){frame_size_pointer=z;}
void SetNewFormat(const AM_MEDIA_TYPE& a){type=a;}
static HRESULT STDCALL QueryInterface(IUnknown* This, GUID* iid, void** ppv);
static HRESULT STDCALL AddRef(IUnknown* This);
static HRESULT STDCALL Release(IUnknown* This);
static HRESULT STDCALL M_QueryInterface(IUnknown* This, GUID* iid, void** ppv);
static HRESULT STDCALL M_AddRef(IUnknown* This);
static HRESULT STDCALL M_Release(IUnknown* This);
static HRESULT STDCALL Connect (
IPin * This,
/* [in] */ IPin *pReceivePin,
/* [in] */ /*const */AM_MEDIA_TYPE *pmt);
static HRESULT STDCALL ReceiveConnection (
IPin * This,
/* [in] */ IPin *pConnector,
/* [in] */ const AM_MEDIA_TYPE *pmt);
static HRESULT STDCALL Disconnect (
IPin * This);
static HRESULT STDCALL ConnectedTo (
IPin * This,
/* [out] */ IPin **pPin);
static HRESULT STDCALL ConnectionMediaType (
IPin * This,
/* [out] */ AM_MEDIA_TYPE *pmt);
static HRESULT STDCALL QueryPinInfo (
IPin * This,
/* [out] */ PIN_INFO *pInfo);
static HRESULT STDCALL QueryDirection (
IPin * This,
/* [out] */ PIN_DIRECTION *pPinDir);
static HRESULT STDCALL QueryId (
IPin * This,
/* [out] */ LPWSTR *Id);
static HRESULT STDCALL QueryAccept (
IPin * This,
/* [in] */ const AM_MEDIA_TYPE *pmt);
static HRESULT STDCALL EnumMediaTypes (
IPin * This,
/* [out] */ IEnumMediaTypes **ppEnum);
static HRESULT STDCALL QueryInternalConnections (
IPin * This,
/* [out] */ IPin **apPin,
/* [out][in] */ ULONG *nPin);
static HRESULT STDCALL EndOfStream (
IPin * This);
static HRESULT STDCALL BeginFlush (
IPin * This);
static HRESULT STDCALL EndFlush (
IPin * This);
static HRESULT STDCALL NewSegment (
IPin * This,
/* [in] */ REFERENCE_TIME tStart,
/* [in] */ REFERENCE_TIME tStop,
/* [in] */ double dRate);
static HRESULT STDCALL GetAllocator(
IMemInputPin * This,
/* [out] */ IMemAllocator **ppAllocator) ;
static HRESULT STDCALL NotifyAllocator(
IMemInputPin * This,
/* [in] */ IMemAllocator *pAllocator,
/* [in] */ int bReadOnly) ;
static HRESULT STDCALL GetAllocatorRequirements(
IMemInputPin * This,
/* [out] */ ALLOCATOR_PROPERTIES *pProps) ;
static HRESULT STDCALL Receive(
IMemInputPin * This,
/* [in] */ IMediaSample *pSample) ;
static HRESULT STDCALL ReceiveMultiple(
IMemInputPin * This,
/* [size_is][in] */ IMediaSample **pSamples,
/* [in] */ long nSamples,
/* [out] */ long *nSamplesProcessed) ;
static HRESULT STDCALL ReceiveCanBlock(
IMemInputPin * This) ;
};
#endif
|