[英]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所允许的要细致得多。
0x800C000D
是PST_E_UNKNOWN_EXCEPTION
,并且是罕见的不建议使用的PStore故障代码。 问题在于过滤器查找/实例化在某处太深处失败。 没有可用的DirectShow过滤器来处理udp://
流(据说是RTP / RTSP)。 VLC使用自己的代码处理它们。
通常,您需要特定的第三方过滤器来呈现这些URL,并且可能还需要直接通过AddFilter
添加此过滤器,而不是依赖AddSourceFilter
通过公共协议注册来选择它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.