public:it:directshow

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
public:it:directshow [2022/03/31 14:49] – [Time and Clocks] oakfirepublic:it:directshow [2022/04/06 17:08] (当前版本) – [Time and Clocks] oakfire
行 13: 行 13:
   * https://docs.microsoft.com/en-us/windows/win32/directshow/time-and-clocks-in-directshow   * https://docs.microsoft.com/en-us/windows/win32/directshow/time-and-clocks-in-directshow
   * 实现了接口 [[https://docs.microsoft.com/en-us/windows/win32/api/strmif/nn-strmif-ireferenceclock|IReferenceClock]]的对象都可作为DirectShow的参考时钟。   * 实现了接口 [[https://docs.microsoft.com/en-us/windows/win32/api/strmif/nn-strmif-ireferenceclock|IReferenceClock]]的对象都可作为DirectShow的参考时钟。
-  * DirectShow 通常使用音频渲染Filter作为参考时钟,如果没有就使用系统时钟。音频渲染Filter可访问硬件时钟。(oak: 所以VDI虚拟机上视频播放速率与系统时间不一致的原因可能是虚拟机的音频设备的问题)。 
   * 参考时钟以 **100 纳秒**(100-nanosecond)为单位。    * 参考时钟以 **100 纳秒**(100-nanosecond)为单位。 
-  * 参考时钟的开始值取决于实现,通常没有意义,只关注参考时钟的增量+  * 参考时钟的开始值取决于实现,''IReferenceClock::GetTime'' 的返回值没有意义,只关注两次 GetTime 的增量。 GetTime 始终单调增加,不会回退。 
 +  * DirectShow 通常使用音频渲染Filter作为参考时钟,如果没有就使用系统时钟。音频渲染Filter可访问硬件时钟。(oak: 所以VDI虚拟机上视频播放速率与系统时间不一致原因可能是虚拟机的音频设备的问题) 
 +  * The Filter Graph Manager 选择参考时钟的优先顺序: 
 +    - 应用指定(''IMediaFilter::SetSyncSource''
 +    - 拥有参考时钟的[[https://docs.microsoft.com/en-us/windows/win32/directshow/live-sources|live source filter]] 
 +    - 从音频渲染Filter开始,往上游找拥有参考时钟的Filter 
 +    - [[https://docs.microsoft.com/en-us/windows/win32/directshow/system-reference-clock|系统参考时钟]] 
 +  * Media Times: 可理解为流的样本计数 
 + 
 +===== Filters ===== 
 +==== EVR ==== 
 +  * [[https://docs.microsoft.com/en-us/windows/win32/medfound/enhanced-video-renderer|Enhanced video renderer]] 
 + 
  • public/it/directshow.1648709348.txt.gz
  • 最后更改: 2022/03/31 14:49
  • oakfire