CBaseRenderer Class Reference

#include <renbase.h>

Inheritance diagram for CBaseRenderer:

CBaseFilter CUnknown CBaseObject CBaseVideoRenderer

List of all members.

Public Member Functions

 CBaseRenderer (REFCLSID RenderClass, TCHAR *pName, LPUNKNOWN pUnk, HRESULT *phr)
 ~CBaseRenderer ()
virtual HRESULT GetMediaPositionInterface (REFIID riid, void **ppv)
STDMETHODIMP NonDelegatingQueryInterface (REFIID, void **)
virtual HRESULT SourceThreadCanWait (BOOL bCanWait)
virtual HRESULT WaitForRenderTime ()
virtual HRESULT CompleteStateChange (FILTER_STATE OldState)
BOOL IsEndOfStream ()
BOOL IsEndOfStreamDelivered ()
BOOL IsStreaming ()
void SetAbortSignal (BOOL bAbort)
virtual void OnReceiveFirstSample (IMediaSample *pMediaSample)
CAMEventGetRenderEvent ()
void Ready ()
void NotReady ()
BOOL CheckReady ()
virtual int GetPinCount ()
virtual CBasePinGetPin (int n)
FILTER_STATE GetRealState ()
void SendRepaint ()
void SendNotifyWindow (IPin *pPin, HWND hwnd)
BOOL OnDisplayChange ()
void SetRepaintStatus (BOOL bRepaint)
STDMETHODIMP Stop ()
STDMETHODIMP Pause ()
STDMETHODIMP Run (REFERENCE_TIME StartTime)
STDMETHODIMP GetState (DWORD dwMSecs, FILTER_STATE *State)
STDMETHODIMP FindPin (LPCWSTR Id, IPin **ppPin)
virtual void OnRenderStart (IMediaSample *pMediaSample)
virtual void OnRenderEnd (IMediaSample *pMediaSample)
virtual HRESULT OnStartStreaming ()
virtual HRESULT OnStopStreaming ()
virtual void OnWaitStart ()
virtual void OnWaitEnd ()
virtual void PrepareRender ()
virtual BOOL ScheduleSample (IMediaSample *pMediaSample)
virtual HRESULT GetSampleTimes (IMediaSample *pMediaSample, REFERENCE_TIME *pStartTime, REFERENCE_TIME *pEndTime)
virtual HRESULT ShouldDrawSampleNow (IMediaSample *pMediaSample, REFERENCE_TIME *ptrStart, REFERENCE_TIME *ptrEnd)
void TimerCallback ()
void ResetEndOfStreamTimer ()
HRESULT NotifyEndOfStream ()
virtual HRESULT SendEndOfStream ()
virtual HRESULT ResetEndOfStream ()
virtual HRESULT EndOfStream ()
void SignalTimerFired ()
virtual HRESULT CancelNotification ()
virtual HRESULT ClearPendingSample ()
virtual HRESULT Active ()
virtual HRESULT Inactive ()
virtual HRESULT StartStreaming ()
virtual HRESULT StopStreaming ()
virtual HRESULT BeginFlush ()
virtual HRESULT EndFlush ()
virtual HRESULT BreakConnect ()
virtual HRESULT SetMediaType (const CMediaType *pmt)
virtual HRESULT CompleteConnect (IPin *pReceivePin)
virtual HRESULT PrepareReceive (IMediaSample *pMediaSample)
virtual HRESULT Receive (IMediaSample *pMediaSample)
virtual BOOL HaveCurrentSample ()
virtual IMediaSample * GetCurrentSample ()
virtual HRESULT Render (IMediaSample *pMediaSample)
virtual HRESULT DoRenderSample (IMediaSample *pMediaSample) PURE
virtual HRESULT CheckMediaType (const CMediaType *) PURE
void WaitForReceiveToComplete ()

Protected Attributes

CRendererPosPassThrum_pPosition
CAMEvent m_RenderEvent
CAMEvent m_ThreadSignal
CAMEvent m_evComplete
BOOL m_bAbort
BOOL m_bStreaming
DWORD_PTR m_dwAdvise
IMediaSample * m_pMediaSample
BOOL m_bEOS
BOOL m_bEOSDelivered
CRendererInputPinm_pInputPin
CCritSec m_InterfaceLock
CCritSec m_RendererLock
IQualityControl * m_pQSink
BOOL m_bRepaintStatus
volatile BOOL m_bInReceive
REFERENCE_TIME m_SignalTime
UINT m_EndOfStreamTimer

Friends

class CRendererInputPin
void CALLBACK EndOfStreamTimer (UINT uID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2)


Detailed Description

Definition at line 44 of file renbase.h.


Constructor & Destructor Documentation

CBaseRenderer::CBaseRenderer ( REFCLSID  RenderClass,
TCHAR pName,
LPUNKNOWN  pUnk,
HRESULT *  phr 
)

Definition at line 23 of file renbase.cpp.

References MSR_REGISTER, and Ready().

CBaseRenderer::~CBaseRenderer (  ) 


Member Function Documentation

HRESULT CBaseRenderer::GetMediaPositionInterface ( REFIID  riid,
void **  ppv 
) [virtual]

STDMETHODIMP CBaseRenderer::NonDelegatingQueryInterface ( REFIID  riid,
void **  ppv 
)

HRESULT CBaseRenderer::SourceThreadCanWait ( BOOL  bCanWait  )  [virtual]

Definition at line 120 of file renbase.cpp.

References m_ThreadSignal, CAMEvent::Reset(), CAMEvent::Set(), and TRUE.

Referenced by BeginFlush(), EndFlush(), Pause(), Run(), and Stop().

HRESULT CBaseRenderer::WaitForRenderTime (  )  [virtual]

Definition at line 203 of file renbase.cpp.

References FALSE, m_RenderEvent, m_ThreadSignal, OnWaitEnd(), OnWaitStart(), RENDER_TIMEOUT, and SignalTimerFired().

Referenced by Receive().

HRESULT CBaseRenderer::CompleteStateChange ( FILTER_STATE  OldState  )  [virtual]

BOOL CBaseRenderer::IsEndOfStream (  )  [inline]

Definition at line 100 of file renbase.h.

References m_bEOS.

Referenced by CompleteStateChange(), and SendRepaint().

BOOL CBaseRenderer::IsEndOfStreamDelivered (  )  [inline]

Definition at line 101 of file renbase.h.

References m_bEOSDelivered.

BOOL CBaseRenderer::IsStreaming (  )  [inline]

Definition at line 102 of file renbase.h.

References m_bStreaming.

void CBaseRenderer::SetAbortSignal ( BOOL  bAbort  )  [inline]

Definition at line 103 of file renbase.h.

References m_bAbort.

Referenced by OnDisplayChange().

virtual void CBaseRenderer::OnReceiveFirstSample ( IMediaSample *  pMediaSample  )  [inline, virtual]

Definition at line 104 of file renbase.h.

Referenced by Receive().

CAMEvent* CBaseRenderer::GetRenderEvent (  )  [inline]

Definition at line 105 of file renbase.h.

References m_RenderEvent.

void CBaseRenderer::Ready (  )  [inline]

void CBaseRenderer::NotReady (  )  [inline]

Definition at line 108 of file renbase.h.

References m_evComplete, and CAMEvent::Reset().

Referenced by BeginFlush(), and CompleteStateChange().

BOOL CBaseRenderer::CheckReady (  )  [inline]

Definition at line 109 of file renbase.h.

References CAMEvent::Check(), and m_evComplete.

int CBaseRenderer::GetPinCount ( void   )  [virtual]

Reimplemented from CBaseFilter.

Definition at line 470 of file renbase.cpp.

CBasePin * CBaseRenderer::GetPin ( int  n  )  [virtual]

Reimplemented from CBaseFilter.

Definition at line 475 of file renbase.cpp.

References ASSERT, CRendererInputPin, hr, HRESULT, m_InterfaceLock, m_pInputPin, and NULL.

Referenced by FindPin(), and GetMediaPositionInterface().

FILTER_STATE CBaseRenderer::GetRealState (  ) 

Definition at line 255 of file renbase.cpp.

References CBaseFilter::m_State.

void CBaseRenderer::SendRepaint (  ) 

void CBaseRenderer::SendNotifyWindow ( IPin *  pPin,
HWND  hwnd 
)

Definition at line 1106 of file renbase.cpp.

References hr, HRESULT, LONG_PTR, and CBaseFilter::NotifyEvent().

BOOL CBaseRenderer::OnDisplayChange (  ) 

void CBaseRenderer::SetRepaintStatus ( BOOL  bRepaint  ) 

Definition at line 1100 of file renbase.cpp.

References m_bRepaintStatus, and m_RendererLock.

Referenced by BreakConnect(), CompleteConnect(), Pause(), PrepareReceive(), Run(), SendRepaint(), and Stop().

STDMETHODIMP CBaseRenderer::Stop (  ) 

STDMETHODIMP CBaseRenderer::Pause (  ) 

STDMETHODIMP CBaseRenderer::Run ( REFERENCE_TIME  StartTime  ) 

STDMETHODIMP CBaseRenderer::GetState ( DWORD  dwMSecs,
FILTER_STATE *  State 
)

Reimplemented from CBaseFilter.

Definition at line 259 of file renbase.cpp.

References CheckPointer, m_evComplete, CBaseFilter::m_State, and WaitDispatchingMessages().

STDMETHODIMP CBaseRenderer::FindPin ( LPCWSTR  Id,
IPin **  ppPin 
)

Reimplemented from CBaseFilter.

Definition at line 495 of file renbase.cpp.

References ASSERT, CheckPointer, GetPin(), lstrcmpW, and NULL.

void CBaseRenderer::OnRenderStart ( IMediaSample *  pMediaSample  )  [virtual]

Reimplemented in CBaseVideoRenderer.

Definition at line 1172 of file renbase.cpp.

References CBaseFilter::m_pClock, and MSR_INTEGER.

Referenced by Render().

void CBaseRenderer::OnRenderEnd ( IMediaSample *  pMediaSample  )  [virtual]

Reimplemented in CBaseVideoRenderer.

Definition at line 1192 of file renbase.cpp.

References CBaseFilter::m_pClock, and MSR_INTEGER.

Referenced by Render().

virtual HRESULT CBaseRenderer::OnStartStreaming (  )  [inline, virtual]

Reimplemented in CBaseVideoRenderer.

Definition at line 127 of file renbase.h.

Referenced by StartStreaming().

virtual HRESULT CBaseRenderer::OnStopStreaming (  )  [inline, virtual]

Reimplemented in CBaseVideoRenderer.

Definition at line 128 of file renbase.h.

Referenced by StopStreaming().

virtual void CBaseRenderer::OnWaitStart (  )  [inline, virtual]

Reimplemented in CBaseVideoRenderer.

Definition at line 129 of file renbase.h.

Referenced by WaitForRenderTime().

virtual void CBaseRenderer::OnWaitEnd (  )  [inline, virtual]

Reimplemented in CBaseVideoRenderer.

Definition at line 130 of file renbase.h.

Referenced by WaitForRenderTime().

virtual void CBaseRenderer::PrepareRender (  )  [inline, virtual]

Definition at line 131 of file renbase.h.

Referenced by Receive().

BOOL CBaseRenderer::ScheduleSample ( IMediaSample *  pMediaSample  )  [virtual]

HRESULT CBaseRenderer::GetSampleTimes ( IMediaSample *  pMediaSample,
REFERENCE_TIME *  pStartTime,
REFERENCE_TIME *  pEndTime 
) [virtual]

Definition at line 624 of file renbase.cpp.

References ASSERT, m_dwAdvise, CBaseFilter::m_pClock, NULL, S_OK, and ShouldDrawSampleNow().

Referenced by ScheduleSample().

HRESULT CBaseRenderer::ShouldDrawSampleNow ( IMediaSample *  pMediaSample,
REFERENCE_TIME *  ptrStart,
REFERENCE_TIME *  ptrEnd 
) [virtual]

Reimplemented in CBaseVideoRenderer.

Definition at line 654 of file renbase.cpp.

References S_FALSE.

Referenced by GetSampleTimes().

void CBaseRenderer::TimerCallback (  ) 

Definition at line 945 of file renbase.cpp.

References m_EndOfStreamTimer, m_RendererLock, and SendEndOfStream().

Referenced by EndOfStreamTimer().

void CBaseRenderer::ResetEndOfStreamTimer (  ) 

Definition at line 1046 of file renbase.cpp.

References ASSERT, CritCheckOut, m_EndOfStreamTimer, and m_RendererLock.

Referenced by Pause(), and ResetEndOfStream().

HRESULT CBaseRenderer::NotifyEndOfStream (  ) 

HRESULT CBaseRenderer::SendEndOfStream (  )  [virtual]

HRESULT CBaseRenderer::ResetEndOfStream (  )  [virtual]

HRESULT CBaseRenderer::EndOfStream ( void   )  [virtual]

void CBaseRenderer::SignalTimerFired (  ) 

Definition at line 661 of file renbase.cpp.

References m_dwAdvise.

Referenced by CancelNotification(), and WaitForRenderTime().

HRESULT CBaseRenderer::CancelNotification (  )  [virtual]

HRESULT CBaseRenderer::ClearPendingSample (  )  [virtual]

HRESULT CBaseRenderer::Active ( void   )  [virtual]

Definition at line 576 of file renbase.cpp.

Referenced by CRendererInputPin::Active().

HRESULT CBaseRenderer::Inactive ( void   )  [virtual]

HRESULT CBaseRenderer::StartStreaming (  )  [virtual]

HRESULT CBaseRenderer::StopStreaming (  )  [virtual]

Definition at line 1087 of file renbase.cpp.

References FALSE, m_bEOSDelivered, m_bStreaming, m_RendererLock, OnStopStreaming(), and TRUE.

Referenced by Pause(), Stop(), and ~CBaseRenderer().

HRESULT CBaseRenderer::BeginFlush ( void   )  [virtual]

HRESULT CBaseRenderer::EndFlush ( void   )  [virtual]

HRESULT CBaseRenderer::BreakConnect (  )  [virtual]

HRESULT CBaseRenderer::SetMediaType ( const CMediaType pmt  )  [virtual]

Definition at line 592 of file renbase.cpp.

Referenced by CRendererInputPin::SetMediaType().

HRESULT CBaseRenderer::CompleteConnect ( IPin *  pReceivePin  )  [virtual]

Definition at line 569 of file renbase.cpp.

References FALSE, m_bAbort, SetRepaintStatus(), and TRUE.

Referenced by CRendererInputPin::CompleteConnect().

HRESULT CBaseRenderer::PrepareReceive ( IMediaSample *  pMediaSample  )  [virtual]

HRESULT CBaseRenderer::Receive ( IMediaSample *  pMediaSample  )  [virtual]

BOOL CBaseRenderer::HaveCurrentSample (  )  [virtual]

Definition at line 768 of file renbase.cpp.

References FALSE, m_pMediaSample, m_RendererLock, NULL, and TRUE.

Referenced by CompleteStateChange().

IMediaSample * CBaseRenderer::GetCurrentSample (  )  [virtual]

Definition at line 774 of file renbase.cpp.

References m_pMediaSample, and m_RendererLock.

HRESULT CBaseRenderer::Render ( IMediaSample *  pMediaSample  )  [virtual]

Definition at line 741 of file renbase.cpp.

References DoRenderSample(), FALSE, m_bStreaming, NULL, OnRenderEnd(), OnRenderStart(), and S_FALSE.

Referenced by Receive().

virtual HRESULT CBaseRenderer::DoRenderSample ( IMediaSample *  pMediaSample  )  [virtual]

Referenced by Render().

virtual HRESULT CBaseRenderer::CheckMediaType ( const CMediaType  )  [virtual]

void CBaseRenderer::WaitForReceiveToComplete (  ) 

Definition at line 231 of file renbase.cpp.

References m_bInReceive, and NULL.

Referenced by BeginFlush(), and Stop().


Friends And Related Function Documentation

friend class CRendererInputPin [friend]

Definition at line 48 of file renbase.h.

Referenced by GetPin().

void CALLBACK EndOfStreamTimer ( UINT  uID,
UINT  uMsg,
DWORD_PTR  dwUser,
DWORD_PTR  dw1,
DWORD_PTR  dw2 
) [friend]

Definition at line 934 of file renbase.cpp.

Referenced by SendEndOfStream().


Member Data Documentation

Definition at line 58 of file renbase.h.

Referenced by SourceThreadCanWait(), and WaitForRenderTime().

Definition at line 59 of file renbase.h.

Referenced by CheckReady(), GetState(), NotReady(), and Ready().

BOOL CBaseRenderer::m_bAbort [protected]

BOOL CBaseRenderer::m_bStreaming [protected]

DWORD_PTR CBaseRenderer::m_dwAdvise [protected]

IMediaSample* CBaseRenderer::m_pMediaSample [protected]

BOOL CBaseRenderer::m_bEOS [protected]

IQualityControl* CBaseRenderer::m_pQSink [protected]

Definition at line 70 of file renbase.h.

Referenced by SendRepaint(), and SetRepaintStatus().

volatile BOOL CBaseRenderer::m_bInReceive [protected]

Definition at line 72 of file renbase.h.

Referenced by PrepareReceive(), Receive(), and WaitForReceiveToComplete().

REFERENCE_TIME CBaseRenderer::m_SignalTime [protected]

Definition at line 74 of file renbase.h.

Referenced by PrepareReceive(), ResetEndOfStream(), and SendEndOfStream().


The documentation for this class was generated from the following files:

Generated on Sun May 25 00:20:36 2008 by  doxygen 1.5.6