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

时间:2013-06-27 15:37:21

标签: c# directshow directshow.net

我正在尝试使用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允许的更加微妙。

1 个答案:

答案 0 :(得分:1)

0x800C000DPST_E_UNKNOWN_EXCEPTION,是一个罕见的弃用PStore失败代码。问题是过滤器查找/实例化在某个地方失败太深。没有库存DirectShow过滤器来处理udp://流(据称是RTP / RTSP)。 VLC使用自己的代码处理它们。

您通常需要特定的第三方过滤器来呈现这些网址,此过滤器可能还需要通过AddFilter直接添加,而不是依靠AddSourceFilter通过公共协议注册来提取。 / p>