CBaseVideoRenderer 类
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
基 CBaseVideoRenderer
类用于生成视频呈现器筛选器。
受保护的数据成员 | 说明 |
---|---|
m_bDrawLateFrames | 指示不删除任何帧的标志。 仅调试。 这会销毁同步。 |
m_bSupplierHandlingQuality | TRUE 表示正在处理质量控制消息。 这样,呈现器就可以知道要等到尽可能晚地放置帧本身,并在供应商放置帧后很早地显示下一帧。 |
m_cFramesDrawn | 自流式处理开始以来已绘制的帧总数。 |
m_cFramesDropped | 自流式处理开始以来在呈现器中丢弃的累积帧。 也可以在不让呈现器识别的情况下上游删除帧。 |
m_idDecision | ShouldDrawSampleNow 决策代码的MSR_id。 |
m_idDuration | MSR_id帧持续时间。 |
m_idFrameAccuracy | 帧延迟时间的性能日志标识符(以毫秒为单位)。 |
m_idFrameAvg | 用于同步和质量控制的平均帧时间的性能日志标识符。 |
m_idQualityRate | MSR_id请求的质量速率。 |
m_idQualityTime | MSR_id请求的质量时间。 |
m_idRenderAvg | 记录的平均呈现器时间的性能日志标识符。 |
m_idSchLateTime | MSR_id计划帧的延迟时间。 |
m_idSendQuality | MSR_id (未使用的通知) 计时。 |
m_idTimeStamp | 帧时间戳的MSR_id。 |
m_idWait | 记录的等待时间的性能日志标识符 (未使用的) 。 |
m_idWaitReal | 真实等待时间的性能日志标识符。 |
m_iSumFrameTime | 帧间时间的总和;属性页需要。 |
m_iSumSqAcc | 属性页所需的精度 () 平方和(以毫秒为单位)。 |
m_iSumSqFrameTime | 帧间时间的平方和;属性页需要。 |
m_iTotAcc | 属性页所需的精度 (总) 毫秒。 |
m_nNormal | 在其计划时间绘制的连续帧数。 负数表示呈现器刚刚删除了帧。 |
m_trDuration | 最后一帧的持续时间 () 开始时间和结束时间之间的差异。 |
m_trEarliness | 当刚删除帧时,允许播放帧的时间有多早。 |
m_trFrame | 最近记录的帧之间的时间。 用于统计度量。 |
m_trFrameAvg | 以参考时间单位表示的平均帧间时间。 |
m_trLastDraw | 上一帧的时间。 用于帧间时间引用。 |
m_trLate | 当前帧延迟的时间量。 用于统计度量。 |
m_trRenderAvg | 帧执行位块传输所需的时间。 |
m_trRenderLast | 最后一帧位块传输的时间。 |
m_trRenderStart | 开始位块传输的时间。 用于获取 m_trRenderLast。 |
m_trThrottle | 呈现每帧后插入的时间段,通常在音频质量已提高且必须降低视频性能后允许这样做时使用。 |
m_trWaitAvg | 以参考时间单位表示的平均等待时间。 |
m_tStreamingStart | 用于属性页统计信息。 表示当前流式处理或上一个流式处理进程的开始时间(如果当前不是流式处理)。 |
成员函数 | 说明 |
CBaseVideoRenderer | 构造 CBaseVideoRenderer 对象。 |
GetStdDev | 对于每帧统计信息,估计每帧到期时间与实际呈现时间之间的标准偏差(以毫秒为单位)。 |
PreparePerformanceData | 设置当前帧 的m_trLate 和 m_trFrame 值。 |
ThrottleWait | 在每个帧之后插入等待期。 |
可重写的成员函数 | 说明 |
JoinFilterGraph | 从筛选器图中删除筛选器时,发送 EC_WINDOW_DESTROYED 事件。 |
OnDirectRender | 收集控制同步和质量控制的计时信息。 |
OnRenderEnd | 记录用于质量控制和同步的信息。 |
OnRenderStart | 记录用于质量控制和同步的信息。 |
OnStartStreaming | 重置控制流式处理的所有时间。 |
OnStopStreaming | 在流式处理结束时调用,以修复属性页报表的时间。 |
OnWaitEnd | 在等待时间结束时调用。 仅限性能日志记录。 |
OnWaitStart | 汇报等待和不等待的时间。 仅限性能日志记录。 |
RecordFrameLateness | 记录呈现发生的及时性,并收集属性页的统计信息。 |
ResetStreamingTimes | 重置控制流式处理的所有时间。 |
ScheduleSample | 使用时钟设置建议链接。 |
SendQuality | 发送质量消息,指示供应商应对质量采取哪些操作。 |
ShouldDrawSampleNow | 确定是否应在视频到期时绘制视频,而不设置计时器建议与时钟的链接。 |
IQualProp 方法 | 说明 |
get_Avg FrameRate | 检索自每 100 秒以帧数开始流式处理以来的平均帧速率。 |
get_AvgSyncOffset | 检索每帧到期时间与实际呈现时间之间的平均时间(以毫秒为单位)。 这适用于自流式处理开始以来的所有帧。 |
get_DevSyncOffset | 检索每帧到期时间与自流式处理开始以来所有帧实际呈现之间的时间的标准偏差(以毫秒为单位)。 |
get_FramesDrawn | 检索自流式处理开始以来绘制的帧数。 |
get_FramesDroppedInRenderer | 检索呈现器丢弃的帧数。 还可以上游删除帧。 |
get_Jitter | 检索每帧与下一帧之间的时间的标准偏差(以毫秒为单位)。 这适用于自流式处理开始以来的所有帧。 |
IQualityControl 方法 | 说明 |
通知 | 通知接收者请求质量更改。 |
SetSink | 设置将接收质量消息的 IQualityControl 对象。 |