CBaseRenderer Class (Compact 2013)

3/26/2014

CBaseFilter Class

     CBaseRenderer Class

This is the base renderer class for writing renderers.

This class handles a single input pin, all state changes, and synchronization.

Protected Data Members

Member

Description

m_bAbort

Used to stop rendering data.

m_bEOS

Indicator for whether there are more samples in the stream.

m_bEOSDelivered

Indicator for whether an EC_COMPLETE event has been delivered.

m_bRepaintStatus

Flag to determine if an EC_REPAINT message can be signaled.

m_bStreaming

Indicator for whether the filter graph is currently streaming.

m_dwAdvise

Timer advise token returned by the clock.

m_EndOfStreamTimer

Time that specifies the end of the stream.

m_evComplete

Event signaled when the pause state is complete.

m_InterfaceLock

Critical section for interfaces.

m_pInputPin

Renderer input pin object.

m_pMediaSample

Current media sample about to be or being rendered.

m_pPosition

CRendererPosPassThru object for passing positioning data upstream.

m_pQSink

Quality control sink.

m_RendererLock

Controller for access to current media sample.

m_RenderEvent

Used to signal timer events.

m_SignalTime

Amount of time that must elapse before CBaseRenderer returns EC_COMPLETE.

m_ThreadSignal

Event signaled to release the source filter thread.

Member Functions

Member function

Description

Active

Is called when the state is switched to paused or running.

Override to add functionality.

CBaseRenderer

Constructs a CBaseRenderer object.

CheckReady

Determines if the event is set.

DisplayRendererState

Displays the status of the video renderer.

Available only in debug mode.

GetRealState

Retrieves the actual state of the renderer.

GetRenderEvent

Retrieves the event to render.

IsEndOfStream

Determines if the end of the stream has been reached.

IsEndOfStreamDelivered

Determines if the end of the stream has been delivered to the filter graph manager.

IsStreaming

Determines if the filter is currently rendering data.

NotifyEndOfStream

Sends an EC_COMPLETE event to the filter graph manager.

NotReady

Forces the m_evComplete event into a nonsignaled state.

Ready

Puts the m_evComplete event into a signaled state.

ResetEndOfStreamTimer

Sets the end of stream timer to zero.

ScheduleSample

Sets up an advise link with the clock.

SendNotifyWindow

Passes the notification window handle to the upstream filter.

SendRepaint

Conditionally signals an EC_REPAINT message to the filter graph.

SetAbortSignal

Sets the abort signal flag.

SetRepaintStatus

Resets the repaint status flag.

SignalTimerFired

Resets the current advise time to zero after a timer fires.

TimerCallback

Checks if it is time to signal the end of the current data stream.

Overrideable Member Functions

Member function

Description

BeginFlush

Signals the start of flushing on the input pin.

BreakConnect

Breaks the input pin connection and resets the end-of-stream flags.

CancelNotification

Cancels scheduled notification with the clock.

CheckMediaType

Determines if the renderer will accept a given media type.

ClearPendingSample

Is called to release the pending sample after it is rendered.

CompleteConnect

Called as part of the connection protocol.

Override to add functionality.

CompleteStateChange

Ensures that a sample is waiting before allowing a pause.

DoRenderSample

Is called when a sample is ready to render.

EndFlush

Is called when the input pin receives an end-flush notification.

EndOfStream

Is called when the input pin receives an end-of-stream notification.

GetCurrentSample

Retrieves the sample waiting at the video renderer.

GetPin

Returns a CBasePin object to the renderer.

GetPinCount

Returns the number of input pins supported.

GetMediaPositionInterface

Retrieves IMediaPosition and IMediaSeeking interfaces for the video renderer.

GetSampleTimes

Retrieves sample time information for this sample.

HaveCurrentSample

Determines if a sample is waiting at the renderer.

Inactive

Is called when going into a stopped state.

Override to add functionality.

NonDelegatingQueryInterface

Returns an interface and increments the reference count.

OnReceiveFirstSample

Provides derived classes with an opportunity to render static data.

OnRenderEnd

Notifies the derived class that a sample is finished rendering.

OnRenderStart

Notifies the derived class that a sample is about to be rendered.

OnStartStreaming

Notifies the derived class that rendering has started.

OnStopStreaming

Notifies the derived class that rendering has stopped.

OnWaitEnd

Notifies the derived class that a wait for a rendering time has just ended.

OnWaitStart

Notifies the derived class that a wait for a rendering time is about to start.

Pause

Tells the renderer to transition to the new (paused) state.

PrepareReceive

Is called to schedule a clock time when the renderer receives a sample.

PrepareRender

Allows derived classes to set themselves just before a sample is rendered.

Receive

Is called by the source filter when a sample is available to render.

Render

Asks the derived class to render the sample.

ResetEndOfStream

Resets the end-of-stream flag.

Run

Transitions the renderer to State_Running if it is not in this state.

SendEndOfStream

Sets the end-of-stream flag.

SetMediaType

Informs the derived class of the selected media type.

ShouldDrawSampleNow

Determines if the sample should be drawn between the start and stop times given.

SourceThreadCanWait

Sets or resets the thread event.

StartStreaming

Called to schedule a pending sample with the clock, and to display timing information.

Stop

Tells the renderer to transition to the new (stopped) state.

StopStreaming

Sets an internal flag to indicate not to schedule arrival of more samples.

WaitForRenderTime

Waits for either the time to arrive or for rendering to be stopped.

Implemented IMediaFilter Methods

Method

Description

GetState

Determines the state of the renderer.

Implemented IBaseFilter Methods

Method

Description

FindPin

Retrieves a pointer to the pin with the specified identifier. (There is only one pin.)

Helper Function

Function

Description

WaitForReceiveToComplete

Waits for the CBaseRenderer::Receive method to complete.

Requirements

Header

dshow.h,
Streams.h

Library

ole32.lib,
Ole32auth.lib,
Strmbase.lib,
Strmiids.lib,
uuid.lib

See Also

Reference

DirectShow Classes