MFCreateSampleCopierMFT 函数 (mfidl.h)
创建示例复制器转换的实例。
语法
HRESULT MFCreateSampleCopierMFT(
[out] IMFTransform **ppCopierMFT
);
parameters
[out] ppCopierMFT
接收指向 IMFTransform 接口的 指针。 调用方必须释放接口。
返回值
如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
示例复制器是媒体基础转换 (MFT) ,可将数据从输入样本复制到输出样本,而无需修改数据。 从示例中复制以下数据:
- 所有 示例属性。
- 时间戳和持续时间。
- 示例标志 (请参阅 IMFSample::SetSampleFlags) 。
- 媒体缓冲区中的数据。 如果输入样本包含多个缓冲区,则数据将复制到输出样本上的单个缓冲区中。
- 一个管道对象(如媒体源)为输出分配媒体样本。
- 另一个管道对象(如媒体接收器)为输入分配自己的媒体样本。 例如,对象可能需要从特殊内存池(如视频内存)分配的缓冲区。
为了使媒体接收器从媒体源接收数据,必须将数据复制到媒体接收器拥有的媒体样本中。 示例复制器可用于此目的。
此类媒体接收器的一个具体示例是 增强的视频呈现器 (EVR) 。 EVR 分配包含 Direct3D 表面缓冲区的样本,因此无法直接从媒体源接收视频样本。 从 Windows 7 开始,拓扑加载程序通过在媒体源和 EVR 之间插入示例复制器自动处理这种情况。
要求
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | mfidl.h |
Library | Mf.lib |
DLL | Mf.dll |