当我调用 IMediaControlRun 时,如何确定 DirectShow 筛选器图表中的哪个筛选器失败?
我有一个使用 DSPACK 组件库的 Delphi 6 应用程序,它构建了一个过滤器图,然后运行它。当我运行 Filter Graph 时,我使用 cePlay 控件事件状态从 IMediaControl.Run() 返回失败 HRESULT,从而收到错误。我知道我可以使用 HRESULT 错误代码来猜测哪个过滤器失败,但我想要更好的方法。当 IMediaControl.Run(csPlay) 返回失败 HRESULT 代码时,是否可以通过 DirectShow 调用或调用序列找出哪个过滤器触发了失败?
I have a Delphi 6 application using the DSPACK component library that builds a filter graph and then runs it. When I run the Filter Graph I am getting an error via a failed HRESULT return from IMediaControl.Run(), using a cePlay control event status. I know that I can use the HRESULT error code to guess which filter failed, but I would like a better way. Is there a way to ferret out which filter triggered the failure when IMediaControl.Run(csPlay) returns a failed HRESULT code, via a DirectShow call or sequence of calls?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没有办法知道,您只能从某个过滤器转发错误代码。解决问题的最佳策略是简化图表并隔离问题。
There is no way to know, you are only forwarded the error code from some filter. The best strategy to toubleshoot is to simplify the graph and isolate the problem.