媒体基础转换(Media Foundation Transforms)技术解析
1. 输入输出流函数差异
在媒体基础转换(MFT)中, GetInputStream() 和 GetOutputStream() 函数的主要区别在于它们对应参数结构中返回的标志。 GetOutputStream() 函数包含一些额外的标志:
- MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE :该标志表明每个样本将具有固定的大小。
- MFT_OUTPUT_STREAM_PROVIDES_SAMPLES :此标志告知调用者,该结构将在输出端提供自己的样本。
MFT_OUTPUT_STREAM_INFO 的其他成员包含与之前所示的相应 MFT_INPUT_STREAM_INFO 结构成员相同的信息。如果上游 MF 组件产生的输出缓冲区格式与下游 MF 组件期望的输入缓冲区格式不兼容,客户端可以操作样本以使组件协同工作,或者尝试找到一个中间 MFT 进行转换。
2. 媒体类型选择函数
当 MFT 客户端确定了预期的输入和输出流行为后,就可以开始进行媒体类型协商。协商过程是构建拓扑结构的一部分,目的是让相邻的 MF 组件相互连接。也就是说,上游 MF 组件需要与下游组件就一种通用的媒体格式达成一致,上游组件必须以一种下游组件能够理解的格式生成数据。如果两个 MF 组件无法就媒体类型达成一致,客户端会在它们之间插入各种其他 MFT,试图
超级会员免费看
订阅专栏 解锁全文
3303

被折叠的 条评论
为什么被折叠?



