DirectShow参考时钟简介
2021-02-26
316
0
DirectShow 提供 IReferenceClock接口用于参考时钟的处理。IReferenceClock的于参考时钟是以100ns为单位的计数。
要获取当前时钟,使用IReferenceClock::GetTime 方法。
默认参考时钟 Default Reference Clock
过滤器图形管理器在图形运行时自动选择一个参考时钟。它使用以下算法来选择时钟:
- 如果应用程序选择了一个时钟(见下文),请使用该时钟。
- 如果图形包含支持iReferenceLock的活动源筛选器,请使用该筛选器。有关活动源的定义,请参见活动源。
- 如果图中不包含任何活动源筛选器,请使用图中支持iReferenceLock的任何筛选器,从渲染器开始并在上游工作。与未连接的筛选器相比,更喜欢连接的筛选器。(如果图形正在渲染音频流,则算法中的此步骤通常会选择音频渲染器过滤器。)
- 如果没有滤波器提供合适的时钟,则使用基于系统时间的系统参考时钟。
设置参考时钟 Set Reference Clock
- 应用程序可以通过调用Filter Graph Manager上的IMediaFilter::SetSyncSource方法来选择时钟。
- 可以通过调用值为NULL的SetSyncSource来指示Filter Graph Manager不使用参考时钟。例如,您可以这样做以尽可能快地处理示例。要恢复默认的参考时钟,请调用过滤器图管理器上的IFilterGraph::SetDefaultSyncSource方法。
- 每当参考时钟改变时,过滤器图形管理器通过调用其IMediaFilter::SetSyncSource方法通知每个过滤器。应用程序不应在筛选器上调用此方法。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936