使用MediaFoundation指定完整拓扑

时间:2012-05-03 00:25:45

标签: ms-media-foundation

我为视频文件创建了一个拓扑,其中只包含一个流(无音频)。

它包含三个按顺序连接的节点:

  • 源流节点
  • Mpeg4Part2VideoDecoder作为转换节点
  • EVR的activate对象作为输出节点

调用SetTopology(),允许部分拓扑导致工作回放。但是,我正在尝试自己解决完整的拓扑结构。

因此,I first need to bind my output node to a media sink。我遵循手册中指定的准则,所有必需的调用似乎都成功了。设置完整拓扑时,我收到MESessionTopologySet事件。

不幸的是,播放不起作用,但我没有收到任何错误。

  • 创建完整拓扑时是否还需要其他内容?
  • 我记得在msdn docs中的某处读到,在设置部分拓扑时使用的拓扑加载器也设置了媒体类型。这是否必要,如果是,我在哪里可以找到更多相关信息?

1 个答案:

答案 0 :(得分:0)

马特·安德鲁斯answered this one for me on the msdn forums

  

如果您愿意,您肯定需要协商自己的媒体类型   绕过拓扑加载器。这意味着获得源   来自IMFMediaTypeHandler的媒体类型,将其设置在下游   转换,然后为链中的每个节点查询   可用的输入和输出类型,以查找兼容的媒体类型。它   除非您有特殊需要,否则使用topoloader会更容易   避免它。