annotate loader/dshow/outputpin.h @ 254:57f0156416e3

use subreader's sub struct
author arpi_esp
date Fri, 30 Mar 2001 03:01:50 +0000
parents bdc4a8fc04d8
children 9355b2ae634e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
168
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
1 /* "output pin" - the one that connects to output of filter. */
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
2
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
3 #ifndef OUTPUTPIN_H
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
4 #define OUTPUTPIN_H
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
5 #include "interfaces.h"
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
6 #include "guids.h"
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
7 #include "default.h"
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
8
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
9 class COutputPin: public IPin, public IMemInputPin
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
10 {
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
11 int refcount;
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
12 AM_MEDIA_TYPE type;
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
13 IPin* remote;
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
14 char** frame_pointer;
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
15 long* frame_size_pointer;
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
16 public:
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
17 COutputPin(const AM_MEDIA_TYPE& vhdr);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
18 ~COutputPin(){delete IPin::vt; delete IMemInputPin::vt;}
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
19 void SetFramePointer(char** z){frame_pointer=z;}
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
20 void SetFrameSizePointer(long* z){frame_size_pointer=z;}
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
21 void SetNewFormat(const AM_MEDIA_TYPE& a){type=a;}
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
22 static HRESULT STDCALL QueryInterface(IUnknown* This, GUID* iid, void** ppv);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
23 static HRESULT STDCALL AddRef(IUnknown* This);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
24 static HRESULT STDCALL Release(IUnknown* This);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
25
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
26 static HRESULT STDCALL M_QueryInterface(IUnknown* This, GUID* iid, void** ppv);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
27 static HRESULT STDCALL M_AddRef(IUnknown* This);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
28 static HRESULT STDCALL M_Release(IUnknown* This);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
29
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
30 static HRESULT STDCALL Connect (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
31 IPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
32 /* [in] */ IPin *pReceivePin,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
33 /* [in] */ /*const */AM_MEDIA_TYPE *pmt);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
34
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
35 static HRESULT STDCALL ReceiveConnection (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
36 IPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
37 /* [in] */ IPin *pConnector,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
38 /* [in] */ const AM_MEDIA_TYPE *pmt);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
39
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
40 static HRESULT STDCALL Disconnect (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
41 IPin * This);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
42
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
43 static HRESULT STDCALL ConnectedTo (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
44 IPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
45 /* [out] */ IPin **pPin);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
46
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
47 static HRESULT STDCALL ConnectionMediaType (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
48 IPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
49 /* [out] */ AM_MEDIA_TYPE *pmt);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
50
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
51 static HRESULT STDCALL QueryPinInfo (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
52 IPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
53 /* [out] */ PIN_INFO *pInfo);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
54
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
55 static HRESULT STDCALL QueryDirection (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
56 IPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
57 /* [out] */ PIN_DIRECTION *pPinDir);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
58
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
59 static HRESULT STDCALL QueryId (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
60 IPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
61 /* [out] */ LPWSTR *Id);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
62
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
63 static HRESULT STDCALL QueryAccept (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
64 IPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
65 /* [in] */ const AM_MEDIA_TYPE *pmt);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
66
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
67 static HRESULT STDCALL EnumMediaTypes (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
68 IPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
69 /* [out] */ IEnumMediaTypes **ppEnum);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
70
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
71 static HRESULT STDCALL QueryInternalConnections (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
72 IPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
73 /* [out] */ IPin **apPin,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
74 /* [out][in] */ ULONG *nPin);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
75
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
76 static HRESULT STDCALL EndOfStream (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
77 IPin * This);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
78
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
79 static HRESULT STDCALL BeginFlush (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
80 IPin * This);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
81
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
82 static HRESULT STDCALL EndFlush (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
83 IPin * This);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
84
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
85 static HRESULT STDCALL NewSegment (
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
86 IPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
87 /* [in] */ REFERENCE_TIME tStart,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
88 /* [in] */ REFERENCE_TIME tStop,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
89 /* [in] */ double dRate);
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
90
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
91
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
92
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
93
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
94
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
95
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
96 static HRESULT STDCALL GetAllocator(
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
97 IMemInputPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
98 /* [out] */ IMemAllocator **ppAllocator) ;
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
99
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
100 static HRESULT STDCALL NotifyAllocator(
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
101 IMemInputPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
102 /* [in] */ IMemAllocator *pAllocator,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
103 /* [in] */ int bReadOnly) ;
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
104
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
105 static HRESULT STDCALL GetAllocatorRequirements(
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
106 IMemInputPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
107 /* [out] */ ALLOCATOR_PROPERTIES *pProps) ;
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
108
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
109 static HRESULT STDCALL Receive(
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
110 IMemInputPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
111 /* [in] */ IMediaSample *pSample) ;
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
112
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
113 static HRESULT STDCALL ReceiveMultiple(
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
114 IMemInputPin * This,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
115 /* [size_is][in] */ IMediaSample **pSamples,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
116 /* [in] */ long nSamples,
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
117 /* [out] */ long *nSamplesProcessed) ;
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
118
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
119 static HRESULT STDCALL ReceiveCanBlock(
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
120 IMemInputPin * This) ;
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
121 };
bdc4a8fc04d8 Initial revision
arpi_esp
parents:
diff changeset
122 #endif