CBaseVideoRenderer class

CBaseVideoRenderer Class Hierarchy

The CBaseVideoRenderer base class is used for building video renderer filters.

Protected Data MembersDescription
m_bDrawLateFramesFlag to signal that no frames are to be dropped. Debug only. This destroys synchronization.
m_bSupplierHandlingQualityTRUE indicates quality control messages are being handled. This lets the renderer know to wait until as late as possible to drop frames itself, and to display the next frame very early after the supplier has dropped a frame.
m_cFramesDrawnTotal number of frames that have been drawn since streaming started.
m_cFramesDroppedCumulative frames that have been dropped in the renderer since streaming started. Frames can also be dropped upstream without the renderer recognizing them.
m_idDecisionMSR_id for the decision code of ShouldDrawSampleNow.
m_idDurationMSR_id for the duration of a frame.
m_idFrameAccuracyPerformance log identifier for the time in milliseconds that the frame was late.
m_idFrameAvgPerformance log identifier for the average frame time that is used for synchronization and quality control.
m_idQualityRateMSR_id for the quality rate requested.
m_idQualityTimeMSR_id for the quality time requested.
m_idRenderAvgPerformance log identifier for the average renderer time recorded.
m_idSchLateTimeMSR_id for how late the frame was when scheduled.
m_idSendQualityMSR_id for timing the notifications (unused).
m_idTimeStampMSR_id for a frame time stamp.
m_idWaitPerformance log identifier for the recorded wait time (unused).
m_idWaitRealPerformance log identifier for the true wait time.
m_iSumFrameTimeSum of the interframe times; needed for the property page.
m_iSumSqAccSum of the squares of the accuracies (in milliseconds) needed for the property page.
m_iSumSqFrameTimeSum of the squares of interframe times; needed for the property page.
m_iTotAccSum of the accuracies (in milliseconds) needed for the property page.
m_nNormalNumber of consecutive frames drawn at their scheduled time. A negative number indicates that a frame has just been dropped by the renderer.
m_trDurationDuration of the last frame (difference between the start and end times).
m_trEarlinessHow early a frame is allowed to be played when a frame has just been dropped.
m_trFrameMost recently recorded time between frames. Used in statistical measurements.
m_trFrameAvgAverage interframe time in reference time units.
m_trLastDrawTime of previous frame. Used for interframe time references.
m_trLateAmount of time that the current frame was late. Used in statistical measurements.
m_trRenderAvgTime that frames are taking to perform the bit-block transfer.
m_trRenderLastTime for the last frame bit-block transfer.
m_trRenderStartTime the bit-block transfer started. Used to get m_trRenderLast.
m_trThrottlePeriod to insert after rendering each frame, typically used when audio quality has been increased and video performance must be decreased to allow this.
m_trWaitAvgAverage wait time in reference time units.
m_tStreamingStartUsed for property page statistics. Represents the start time of the current streaming process or the previous streaming process if not currently streaming.
Member FunctionsDescription
CBaseVideoRenderer Constructs a CBaseVideoRenderer object.
GetStdDev Estimates the standard deviation in milliseconds between when each frame is due and when it is actually rendered, for per-frame statistics.
PreparePerformanceData Sets the m_trLate and m_trFrame values of the current frame.
ThrottleWait Inserts a wait period after each frame.
Overridable Member FunctionsDescription
JoinFilterGraph Sends an EC_WINDOW_DESTROYED event when filter is removed from the filter graph.
OnDirectRender Collects timing information that controls synchronization and quality control.
OnRenderEnd Records information for quality control and synchronization.
OnRenderStart Records information for quality control and synchronization.
OnStartStreaming Resets all times that control streaming.
OnStopStreaming Called at the end of streaming to fix times for the property page report.
OnWaitEnd Called when a wait time ends. Performance logging only.
OnWaitStart Updates times spent waiting and not waiting. Performance logging only.
RecordFrameLateness Records how timely the rendering occurred and gathers statistics for the property page.
ResetStreamingTimes Resets all times that control the streaming.
ScheduleSample Sets up an advise link with the clock.
SendQuality Sends a quality message to indicate what the supplier should do about quality.
ShouldDrawSampleNow Determines if the video should be drawn when it is due, without setting a timer advise link with the clock.
IQualProp MethodsDescription
get_Avg FrameRate Retrieves the average frame rate since streaming started in frames per 100 seconds.
get_AvgSyncOffset Retrieves the average of the time in milliseconds between when each frame was due and when it was actually rendered. This applies to all frames since streaming started.
get_DevSyncOffset Retrieves the standard deviation of the time in milliseconds between when each frame was due and when it was actually rendered for all frames since streaming started.
get_FramesDrawn Retrieves the number of frames drawn since streaming started.
get_FramesDroppedInRenderer Retrieves the number of frames dropped by the renderer. Frames can also be dropped upstream.
get_Jitter Retrieves the standard deviation of the time in milliseconds between each frame and the next. This applies to all frames since streaming started.
IQualityControl MethodsDescription
Notify Notifies the recipient that a quality change is requested.
SetSink Sets the IQualityControl object that will receive quality messages.

 

 

 

Show: