Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

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

CRendererPosPassThruobject 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 CBaseRendererreturns 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_evCompleteevent into a nonsignaled state.

Ready

Puts the m_evCompleteevent 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 CBasePinobject to the renderer.

GetPinCount

Returns the number of input pins supported.

GetMediaPositionInterface

Retrieves IMediaPositionand IMediaSeekinginterfaces 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::Receivemethod to complete.

Requirements

Windows Embedded CE Windows CE 2.12 and later
Windows Mobile Windows Mobile Version 5.0 and later
Note Microsoft DirectShow applications and DirectShow filters have different include file and Library requirements
For more information, see Setting Up the Build Environment