forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			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__
							 | 
						||
| 
								 | 
							
								
							 |