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