IMediaControl.Stop 在第二台显示器上挂起

IMediaControl.Stop hangs on second monitor

'Why IMediaControl.Stop is hanging' 似乎是一个常见问题。现在我有一个特别的经历:如果运行过滤器图的应用程序位于第一个监视器上,那么一切都会像发条一样。停止过滤图也能解决 w/o 个问题。但是当应用程序移动到第二个监视器时,IMediaControl.Stop() 的调用永远不会 returns 并且软件挂起。
任何线索可能是什么原因?

视频混合渲染器 (VMR-7) 过滤器可以设置为特定监视器的 IVMRMonitorConfig 界面。如果您在不同的监视器上有效地使用它,它会重新启动图表,以便它可以在重新启动期间重新配置自己。即有一个Stop/Pause/Run循环。由于另一个错误的过滤器,在此转换期间发生冻结。实际上,它与经常被问到的问题类型相同,适用相同的方法:您需要在冻结时检查调用堆栈,确定死锁原因和错误的过滤器,解决发现的问题。同样适用于 VMR-9 过滤器。

也就是说,停止调用是预期的行为。停止冻结与其他停止冻结没有太大区别:冻结的不是视频渲染器,而是另一个错误处理停止过渡的过滤器。

另请参阅: