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__
 | ||
|  | 
 |