【发布时间】:2016-09-16 17:10:20
【问题描述】:
问题
我正在编写一个带有两个输入和一个输出的自定义 MFT(它将两个视频流合并为一个)。
我的 MFT 要求在其输入之前设置媒体类型,然后才能提供输出类型。
我通过将两个源节点(它们从聚合媒体源获取不同的流)连接到我的转换节点,然后将 EVR 连接到我的单个输出来设置我的拓扑。
当我启动媒体会话时,我看到拓扑在第一个输入上调用 SetInputType,它成功了。
但随后它立即尝试获取输出类型:首先在我的 MFT 上调用 GetOutputCurrentType,它返回 MF_E_TRANSFORM_TYPE_NOT_SET,因为它无法提供一个,然后通过调用 GetOutputAvailableType,我返回 @ 987654325@ 根据文档(说您必须在设置输出类型之前设置输入类型;我也尝试输出一些部分媒体类型,但它是相同的)。
这就是问题所在:在那之后,拓扑似乎放弃了我的 MFT:它永远不会在第二个输入上调用 SetInputType。
问题
如何强制拓扑在处理输出之前设置所有输入类型?
【问题讨论】: