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 应用] |
标头 |
|
另请参阅