繁体   English   中英

在DirectShow SDK中使用AddSourceFilter时出现0x800C000D错误

[英]0x800C000D error when using AddSourceFilter in the directshow SDK

我正在尝试使用DirectShow SDK构建图形。 当我调用GraphBuilder.AddSourceFilter时,出现错误0x800C000D

private IGraphBuilder graphBuilder = null;
private IBaseFilter sourceFilter = null;

int hr = 0;
graphBuilder = (IGraphBuilder)new FilterGraph();

hr = graphBuilder.AddSourceFilter(filename, @"Source1", out sourceFilter);

之后,hr返回上述错误代码,并引发异常。 担心我的文件名不正确,我尝试了以下操作:

udp://224.1.1.13:9005/10.10.1.3
udp://224.1.1.13:9005/0.0.0.0
udp://224.1.1.13:9005

该流可用并且正在传输,我已经使用地址udp://224.1.1.13:9005的VLC进行了确认。

我对DirectShow图形构建非常缺乏经验,所以我想知道我是否缺少一些基本知识。 我已经遍历了有关msdn的图形生成文档,但是我听说该过程比ms所允许的要细致得多。

0x800C000DPST_E_UNKNOWN_EXCEPTION ,并且是罕见的不建议使用的PStore故障代码。 问题在于过滤器查找/实例化在某处太深处失败。 没有可用的DirectShow过滤器来处理udp://流(据说是RTP / RTSP)。 VLC使用自己的代码处理它们。

通常,您需要特定的第三方过滤器来呈现这些URL,并且可能还需要直接通过AddFilter添加此过滤器,而不是依赖AddSourceFilter通过公共协议注册来选择它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM