57 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| //------------------------------------------------------------------------------
 | |
| // File: AMExtra.h
 | |
| //
 | |
| // Desc: DirectShow base classes.
 | |
| //
 | |
| // Copyright (c) 1992-2001 Microsoft Corporation.  All rights reserved.
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| 
 | |
| #ifndef __AMEXTRA__
 | |
| #define __AMEXTRA__
 | |
| 
 | |
| // Simple rendered input pin
 | |
| //
 | |
| // NOTE if your filter queues stuff before rendering then it may not be
 | |
| // appropriate to use this class
 | |
| //
 | |
| // In that case queue the end of stream condition until the last sample
 | |
| // is actually rendered and flush the condition appropriately
 | |
| 
 | |
| class CRenderedInputPin : public CBaseInputPin
 | |
| {
 | |
| public:
 | |
| 
 | |
|     CRenderedInputPin(__in_opt LPCTSTR pObjectName,
 | |
|                       __in CBaseFilter *pFilter,
 | |
|                       __in CCritSec *pLock,
 | |
|                       __inout HRESULT *phr,
 | |
|                       __in_opt LPCWSTR pName);
 | |
| #ifdef UNICODE
 | |
|     CRenderedInputPin(__in_opt LPCSTR pObjectName,
 | |
|                       __in CBaseFilter *pFilter,
 | |
|                       __in CCritSec *pLock,
 | |
|                       __inout HRESULT *phr,
 | |
|                       __in_opt LPCWSTR pName);
 | |
| #endif
 | |
|     
 | |
|     // Override methods to track end of stream state
 | |
|     STDMETHODIMP EndOfStream();
 | |
|     STDMETHODIMP EndFlush();
 | |
| 
 | |
|     HRESULT Active();
 | |
|     HRESULT Run(REFERENCE_TIME tStart);
 | |
| 
 | |
| protected:
 | |
| 
 | |
|     // Member variables to track state
 | |
|     BOOL m_bAtEndOfStream;      // Set by EndOfStream
 | |
|     BOOL m_bCompleteNotified;   // Set when we notify for EC_COMPLETE
 | |
| 
 | |
| private:
 | |
|     void DoCompleteHandling();
 | |
| };
 | |
| 
 | |
| #endif // __AMEXTRA__
 | |
| 
 |