2014-09-22 58 views
0

我有一個應用程序運行在Windows 7上,它基本上是一個基於DirectShow.NET的視頻播放器。爲了連續播放視頻並進行無縫過渡,我正在播放下一個視頻(通過調用mediacontrol.pause()),同時播放「當前」視頻。通常情況下,這種方式非常好,但是在某些情況下,暫停不會完成,只是掛起。我已經多次瞭解代碼,並且找不到任何內存泄漏或類似內容的證據。Directshow.NET和系統不穩定

現在,真正有趣的是,它在我的辦公室能正常工作,但在另一個辦公室沒有。我可以將一臺有效的電腦連接到遠程辦公室,讓它在相當經常的時間休息,但是我隨後將它帶回這裏,並且工作完美無瑕。這使我相信建築物中的某些東西會導致系統不穩定。會有可能的原因,我該如何測試?

+0

聽起來像是一種競爭條件。如果它在DirectShow中,您可能永遠找不到它。由於缺乏您提供的信息,我們無法找到它。 – 2014-09-22 15:46:53

+0

DirectShow沒有老化,它大大超過了它的失效日期。在DirectShow.NET中相當明顯,它的很多示例程序無法正常工作。媒體基金會是前進之路。 – 2014-09-22 15:50:41

+0

如果這是一種競爭條件,爲什麼它會在一個地點每隔30-60分鐘發生一次,而在另一個地點進行測試的時間不會一次?正如我所說,它甚至不是兩個不同的PC,我從一個地方到另一個地方。 – Tom 2014-09-22 16:05:54

回答

0

除了您需要進行調查以外,不能從這些信息中獲知。如果您有凍結,您可以拍攝凍結過程的快照並縮小死鎖的範圍。

DirectShow核心和庫存過濾器中沒有任何內容導致上述效果,或者至少極不可能。典型的原因是參與回放圖形的第三方過濾器之一本身的行爲不正確。或者,下一個可能的原因是,當您一次播放太多文件時,視頻適配器驅動程序正在出現問題,尤其是,如果使用諸如硬件加速解碼的特定功能。

凍結調用堆棧和精確的過濾器圖形拓撲結構是您需要繼續進行故障排除的方法。