MF_TRANSFORM_ASYNC 属性

指定媒体基础转换 (MFT) 是否执行异步处理。

数据类型

UINT32

获取/设置

若要获取此属性,请调用 IMFAttributes::GetUINT32

若要设置此属性,请调用 IMFAttributes::SetUINT32

备注

属性是一个布尔值:

  • 如果该属性为非零,则 MFT 将执行异步处理。
  • 如果属性为 0 或未设置,则 MFT 是同步的。

若要获取此属性,请首先调用 IMFTransform::GetAttributes 以获取 MFT 的属性存储。 如果该方法成功,请调用 IMFAttributes::GetUINT32 以获取属性值。 如果这两种方法中的任何一个失败,则 MFT 是同步的。

对于异步 MCT,此属性必须设置为非零值。 对于同步 MRT,此属性是可选的,但必须设置为 0(如果存在)。

异步 MRT 与早期版本的 Media Foundation 不兼容。 若要使用异步 MFT,客户端必须在 MFT 上设置 MF_TRANSFORM_ASYNC_UNLOCK 属性。 (Microsoft 媒体基础管道自动执行此步骤。)

示例

以下代码测试 MFT 是否执行异步处理。

BOOL IsTransformAsync(IMFTransform *pMFT)
{
    BOOL bAsync = FALSE;
    IMFAttributes *pAttributes = NULL;

    HRESULT hr = pMFT->GetAttributes(&pAttributes);
    if (SUCCEEDED(hr))
    {
        bAsync = MFGetAttributeUINT32(pAttributes, MF_TRANSFORM_ASYNC, FALSE);
        pAttributes->Release();
    }

    return (bAsync != FALSE);
}

要求

要求
最低受支持的客户端
Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器
Windows Server 2008 R2 [桌面应用 |UWP 应用]
标头
Mftransform.h

另请参阅

媒体基础属性的字母顺序列表

异步 MRT

转换属性

MF_TRANSFORM_ASYNC_UNLOCK