强制终止 DirectShow

Forcably Terminating DirectShow

我有一个应用程序可以从网络摄像头捕获视频和图像。通常,使用 DirectShow.net wrapper.Stopping 它可以很好地可靠地工作,但是该图通常会导致死锁。它使用了许多过滤器,包括 sampleGrabber 过滤器和供应商提供的过滤器(我们无法编辑或替换)。停止图形的普通 mediaControl 方法不起作用。因为我们无法编辑供应商过滤器,所以我们无法消除僵局并释放摄像头。终止应用程序可以解决问题并释放相机。有没有办法在不终止父应用程序的情况下终止 DirectShow 线程?

我的应用程序是用 c# 编写的,但如果您有 c++ 答案,我会接受并移植它。

如果是frozen,打破死锁(特别是释放独占资源如camera的锁)的唯一方法就是kill掉整个进程。