在graphstudio中,当连接两个过滤器但没有连接时没有错误是什么意思

时间:2014-03-11 18:33:58

标签: c++ directshow

当我尝试在graphstudio中连接两个不匹配的过滤器时,通常会出现错误代码。 在我的情况下,如果我尝试将我的过滤器连接到另一个过滤器,也没有错误消息 有一个连接,例如过滤器之间没有箭头。

根据文档

,这是过滤器的连接方式
  

连接过程的概要如下:

     
      
  1. Filter Graph Manager在输出引脚上调用IPin :: Connect,将指针传递给输入引脚。

  2.   
  3. 如果输出引脚接受连接,它会在输入引脚上调用IPin :: ReceiveConnection。

  4.   
  5. 如果输入引脚也接受连接,则连接尝试成功并且引脚已连接。

  6.   

使用Visual Studio,我可以确保ReceiveConnection返回S_OK

所以必须有更多的东西,只有这3个步骤,否则它应该工作

1 个答案:

答案 0 :(得分:0)

Pin连接基本上是IGraphBuilder::Connect来电,内部调用了IPin::ConnectIPin::ReceiveConnection。如果内部调用成功,则调用成功。

稍后,GraphStudio会枚举引脚并检查这些引脚上的引脚连接。如果引脚未报告连接的任何内容,则GraphStudio将显示断开连接。

考虑到您之前关于覆盖Connect方法的问题,我认为您错误地覆盖了它们:您没有在过滤器/引脚上进行连接,仍然将成功代码作为操作状态返回。