mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-03 15:06:34 +00:00
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__
|
||
|
|