0

我正在我的 directshow 代码中使用ICaptureGraphBuilder2构建图形。

我正在将我的相机实例和VMR9 渲染器添加到图表中,并尝试使用RenderStream API 使用捕获引脚和实现的 MEDIATYPE_video 格式对其进行智能连接。

如果我使用ROT导出构建的结果图,我可以在源过滤器和渲染过滤器之间看到一个smarttee过滤器、解压缩器过滤器和一个色彩空间转换器过滤器。

但是在 Graphedit 中,我使用相同的源和渲染过滤器构建了自己的图形,并尝试在我的捕获引脚中使用rightclick->renderpin智能连接它,没有添加中间体。

为什么会出现这种奇怪的行为?

4

1 回答 1

2

这是设计的行为,IGraphBuilder::RenderICaptureGraphBuilder2::RenderStream。MSDN 记录了差异:

智能三通。一些捕捉过滤器有捕捉针但没有预览针。要预览,捕获引脚必须连接到 Smart Tee 过滤器。这个过滤器将数据分成两个流,一个捕获流和一个预览流。当您指定 PIN_CATEGORY_PREVIEW 或 PIN_CATEGORY_CAPTURE 时,如果需要,该方法会插入一个 Smart Tee 过滤器。然后它在 Smart Tee 过滤器上呈现指定的流。如果渲染预览流并且该方法使用 Smart Tee 过滤器,它会返回 VFW_S_NOPREVIEWPIN。

于 2014-08-12T12:42:18.003 回答