Media Foundation:多输入MFT和拓扑连接顺序

时间:2016-09-16 17:10:21

标签: ms-media-foundation mft

问题

我正在编写一个带有两个输入和一个输出的自定义MFT(它将两个视频流合并为一个)。

我的MFT要求在输入之前设置媒体类型,它可以提供输出类型。

我通过连接两个源节点(它们从聚合媒体源获取不同的流)到我的变换节点,然后将EVR连接到我的单个输出来设置我的拓扑。

当我启动媒体会话时,我看到拓扑在第一个输入上调用SetInputType,并且它成功。

但是它会立即尝试获取输出类型:首先在我的MFT上调用GetOutputCurrentType,然后返回MF_E_TRANSFORM_TYPE_NOT_SET,因为它无法提供一个,然后通过调用GetOutputAvailableType ,我根据文档返回MF_E_TRANSFORM_TYPE_NOT_SET(说你必须在设置输出类型之前设置输入类型;我也尝试输出一些部分媒体类型,但它是相同的)。

这就是问题:在那之后,拓扑结构似乎放弃了我的MFT:它从不在第二个输入上调用SetInputType

问题

如何在处理输出之前强制拓扑设置所有输入类型?

1 个答案:

答案 0 :(得分:2)

阅读本文:Multiple input

在Windows 7下,它不起作用......

您可以像我在MFNode项目中一样提供自定义媒体会话。