CVideoTransformFilter 类

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

cvideotransformfilter 类层次结构

CVideoTransformFilter 主要设计为 AVI 解压缩器筛选器的基类。 此类向 CTransformFilter 类添加了对质量控制的支持。 筛选器的 Receive 方法可以根据呈现器的质量消息以及筛选器在流式处理时收集的性能度量值来决定删除帧。

如果筛选器删除帧,它会继续删除帧,直到它到达下一个关键帧。 对于 MPEG 流,筛选器不区分 B 帧和 P 帧。

受保护的成员变量 说明
m_bQualityChanged 指示筛选器是否已删除帧。
m_bSkipping 指示筛选器当前是否正在删除帧。
m_itrAvgDecode 解码帧所用的平均时间长度。
m_itrLate 指示样本到达呈现器的时间有多晚。
m_nFramesSinceKeyFrame 筛选器自上一个关键帧以来收到的帧数。
m_nKeyFramePeriod 在关键帧之间观察到的最大间隔。
m_nWaitForKey 当前要删除的最大增量帧数。
m_tDecodeStart 解码最新示例所需的时间长度。
受保护的方法 说明
AbortPlayback 用于指示流式处理错误。
AlterQuality 通知筛选器请求质量更改。
接收 接收媒体样本,对其进行处理,并将输出样本传送到下游筛选器。
ShouldSkipFrame 确定筛选器是否应删除指定的样本。
StartStreaming 当筛选器切换到暂停状态时调用。
公共方法 说明
CVideoTransformFilter 构造函数方法。
EndFlush 结束刷新操作。