IMFTransform::GetOutputStatus 方法 (mftransform.h)

查询 Media Foundation 转换 (MFT) 是否准备好生成输出数据。

语法

HRESULT GetOutputStatus(
  [out] DWORD *pdwFlags
);

参数

[out] pdwFlags

接收 _MFT_OUTPUT_STATUS_FLAGS 枚举或零的成员。 如果值 MFT_OUTPUT_STATUS_SAMPLE_READY,MFT 可以生成输出示例。

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
E_NOTIMPL
未实现。
MF_E_TRANSFORM_TYPE_NOT_SET
媒体类型未在一个或多个流上设置。

注解

如果该方法返回 MFT_OUTPUT_STATUS_SAMPLE_READY 标志,则表示可以通过调用 IMFTransform::P rocessOutput 生成一个或多个输出样本。

实现此方法不需要 MFT。 如果该方法返回 E_NOTIMPL,则必须调用 ProcessOutput 来确定转换是否具有输出数据。

如果 MFT 有多个输出流,但它不会为每个流同时生成样本,则当只有一个流准备就绪时,它可以设置 MFT_OUTPUT_STATUS_SAMPLE_READY 标志。 但是,如果 MFT 通常为每个输出流同时生成样本,则在所有流准备就绪之前,它不应设置此标志。

客户端在所有流上设置有效的媒体类型后,MFT 应始终处于以下两种状态之一:能够接受更多输入或能够生成更多输出。

如果在包括 mftransform.h 之前定义 MFT_UNIQUE_METHOD_NAMES ,则此方法将重命名 为 MFTGetOutputStatus。 请参阅 创建混合 DMO/MFT 对象

要求

   
最低受支持的客户端 Windows Vista [桌面应用|UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用|UWP 应用]
目标平台 Windows
标头 mftransform.h
Library Mfuuid.lib

另请参阅

IMFTransform

Media Foundation 转换