2011-06-15 62 views
3

在我们的C#.NET应用程序中,我们有两个DirectShow过滤器图形,每个图形显示一个视频设备和一个音频设备。每当filtergraphs运行时,系统时间会以每分钟约4-6s的速度减速......图形不会编码任何内容,只是显示来源中的内容。DirectShow在.NET应用程序中导致时间减慢

这只发生在应用程序中,而不是在GraphEdit中。

什么会导致这样的行为?我们能做些什么呢?

+0

实际上它不会影响系统时钟。不要指望你设定的定时器,比如说,一秒钟之后就会发射*精确*。如果你的程序特别忙,它总是需要更多,更长的时间。 – 2011-06-15 13:25:18

+0

问题出现在Windows时钟(在任务栏中可见的那个)上,并且此外还会影响DirectShow图形时钟 - 这会在捕捉视频时导致媒体文件的计时错误。 – hanneswurstes 2011-06-15 14:23:52

回答

6

我认为这必须是其中一个驱动程序中的一个错误,导致它阻止中断足够长的时间,并且经常足以让某些定时器中断被丢弃。 DirectShow中的其他任何东西都不会像这样影响系统时钟。

G

+0

在Core i5(第二代)上运行它,这似乎是最接近的答案,虽然我们只是使用股票窗口驱动程序,它应该知道正确的中断处理... – hanneswurstes 2011-06-21 08:45:41

+1

DirectShow将时钟的中断频率切换为正常中断速率的10倍(或至少用于)。我想这可能会很容易地显示当时钟中断率较低时不明显的问题。 – 2011-06-21 12:20:04

0

您是否在虚拟机上运行您的应用程序?我曾经有过类似的问题(与DirectShow不同),经过多次挖掘,我们发现问题与虚拟机有关 - 在某些情况下哪些时间会减慢。

+0

没有..我们正在使用Windows 7 x86企业版 – hanneswurstes 2011-06-15 12:42:47

相关问题