A Fast Bresenham Type Algorithm For Drawing Ellipses by John Kennedy
[xy_vsfilter.git] / src / filters / BaseClasses / amextra.h
blob3869c9de014f3f985b53f90b5bb6dcf39bbb85cc
1 //------------------------------------------------------------------------------
2 // File: AMExtra.h
3 //
4 // Desc: DirectShow base classes.
5 //
6 // Copyright (c) 1992-2002 Microsoft Corporation. All rights reserved.
7 //------------------------------------------------------------------------------
10 #ifndef __AMEXTRA__
11 #define __AMEXTRA__
13 // Simple rendered input pin
15 // NOTE if your filter queues stuff before rendering then it may not be
16 // appropriate to use this class
18 // In that case queue the end of stream condition until the last sample
19 // is actually rendered and flush the condition appropriately
21 class CRenderedInputPin : public CBaseInputPin
23 public:
25 CRenderedInputPin(TCHAR *pObjectName,
26 CBaseFilter *pFilter,
27 CCritSec *pLock,
28 HRESULT *phr,
29 LPCWSTR pName);
30 #ifdef UNICODE
31 CRenderedInputPin(CHAR *pObjectName,
32 CBaseFilter *pFilter,
33 CCritSec *pLock,
34 HRESULT *phr,
35 LPCWSTR pName);
36 #endif
38 // Override methods to track end of stream state
39 STDMETHODIMP EndOfStream();
40 STDMETHODIMP EndFlush();
42 HRESULT Active();
43 HRESULT Run(REFERENCE_TIME tStart);
45 protected:
47 // Member variables to track state
48 BOOL m_bAtEndOfStream; // Set by EndOfStream
49 BOOL m_bCompleteNotified; // Set when we notify for EC_COMPLETE
51 private:
52 void DoCompleteHandling();
55 #endif // __AMEXTRA__