次の方法で共有


MF_TRANSFORM_ASYNC属性

Media Foundation 変換 (MFT) が非同期処理を実行するかどうかを指定します。

データ型

UINT32

取得/設定

この属性を取得するには、 IMFAttributes::GetUINT32 を呼び出します。

この属性を設定するには、 IMFAttributes::SetUINT32 を呼び出します。

解説

属性はブール値です。

  • 属性が 0 以外の場合、MFT は非同期処理を実行します。
  • 属性が 0 の場合、または設定されていない場合、MFT は同期です。

この属性を取得するには、まず IMFTransform::GetAttributes を呼び出して MFT の属性ストアを取得します。 そのメソッドが成功した場合は、 IMFAttributes::GetUINT32 を呼び出して属性値を取得します。 2 つのメソッドのいずれかが失敗した場合、MFT は同期です。

非同期 MFT の場合、この属性は 0 以外の値に設定する必要があります。 同期 MFT の場合、この属性は省略可能ですが、存在する場合は 0 に設定する必要があります。

非同期 MFT は、以前のバージョンの Media Foundation と互換性がありません。 非同期 MFT を使用するには、クライアントで MFT に MF_TRANSFORM_ASYNC_UNLOCK 属性を設定する必要があります。 (Microsoft Media Foundation パイプラインは、この手順を自動的に実行します)。

次のコードは、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 アプリ]
Header
Mftransform.h

関連項目

Media Foundation 属性のアルファベット順リスト

非同期 MFT

属性の変換

MF_TRANSFORM_ASYNC_UNLOCK