MFTRegister 関数 (mfapi.h)

Media Foundation 変換 (MFT) に関する情報をレジストリに追加します。

アプリケーションは、 MFTEnum または MFTEnumEx 関数を呼び出すことによって MFT を 列挙できます。

構文

HRESULT MFTRegister(
  [in] CLSID                  clsidMFT,
  [in] GUID                   guidCategory,
  [in] LPWSTR                 pszName,
  [in] UINT32                 Flags,
  [in] UINT32                 cInputTypes,
  [in] MFT_REGISTER_TYPE_INFO *pInputTypes,
  [in] UINT32                 cOutputTypes,
  [in] MFT_REGISTER_TYPE_INFO *pOutputTypes,
  [in] IMFAttributes          *pAttributes
);

パラメーター

[in] clsidMFT

MFT の CLSID。 MFT は、同じ CLSID を使用して COM オブジェクトとして登録する必要もあります。

[in] guidCategory

MFT のカテゴリを指定する GUID。 MFT カテゴリの一覧については、「 MFT_CATEGORY」を参照してください。

[in] pszName

MFT のフレンドリ名を含むワイド文字列。

[in] Flags

_MFT_ENUM_FLAG列挙の次のフラグの 0 個以上のビットごとの OR

説明
MFT_ENUM_FLAG_ASYNCMFT
MFT は、ソフトウェアで非同期処理を実行します。 「非同期 MFT」を参照してください。 このフラグは、ハードウェア変換には適用されません。

Windows 7 が必要です。

MFT_ENUM_FLAG_FIELDOFUSE
MFT を使用するには、アプリケーションで MFT のロックを解除する必要があります。 「IMFFieldOfUseMFTUnlock」を参照してください。

Windows 7 が必要です。

MFT_ENUM_FLAG_HARDWARE
MFT は、AVStream ドライバーまたは GPU ベースのプロキシ MFT を使用して、ハードウェア ベースのデータ処理を実行します。 このカテゴリの MFT は、常にデータを非同期的に処理します。 「ハードウェア MFT」を参照してください。
メモ このフラグは、ハードウェアで動作を完全に実行するビデオ コーデックとビデオ プロセッサに適用されます。 DirectX ビデオ アクセラレーションを使用してデコードを支援するソフトウェア デコーダーには適用されません。
 
Windows 7 が必要です。
MFT_ENUM_FLAG_SYNCMFT
MFT はソフトウェアで同期処理を実行します。 このフラグは、ハードウェア変換には適用されません。
MFT_ENUM_FLAG_TRANSCODE_ONLY
MFT はトランスコード用に最適化されており、再生には使用しないでください。

Windows 7 が必要です。

 

フラグを 0 に設定することは、MFT_ENUM_FLAG_SYNCMFT フラグを設定することと同じです。 MFT の既定の処理モデルは同期処理です。

Windows 7 より前では、 Flags パラメーターが予約されていました。

[in] cInputTypes

pInputTypes 配列内の要素の数。

[in] pInputTypes

MFT_REGISTER_TYPE_INFO構造体の配列へのポインター。 配列の各メンバーは、MFT でサポートされる入力形式を指定します。 このパラメーターは、NULL でもかまいません。

このパラメーターは、NULL でもかまいません。 ただし、パラメーターが NULL の場合、MFT は、アプリケーションが目的の入力型に NULL を 指定した場合にのみ列挙されます。

[in] cOutputTypes

pOutputTypes 配列内の要素の数。

[in] pOutputTypes

MFT_REGISTER_TYPE_INFO構造体の配列へのポインター。 配列の各メンバーは、MFT でサポートされる出力形式を定義します。

このパラメーターは、NULL でもかまいません。 ただし、パラメーターが NULL の場合、MFT は、アプリケーションが目的の出力型に NULL を 指定した場合にのみ列挙されます。

[in] pAttributes

追加のレジストリ情報を含む属性ストアの IMFAttributes インターフェイスへのポインター。 このパラメーターは、NULL でもかまいません。 パラメーターが NULL 以外の場合、属性はバイト配列としてレジストリに書き込まれます。 MFTGetInfo 関数を使用して、属性を取得できます。

このパラメーターには、次の属性が定義されています。

説明
MFT_CODEC_MERIT_Attribute
ハードウェア コーデックのメリット値が含まれています。 コーデックのメリットに関するページを参照してください。

戻り値

この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

解説

この関数によって作成されたレジストリ エントリは、次の関数によって読み取られます。

機能 説明
MFTEnum メディアの種類とカテゴリ別に MFT を列挙します。
MFTEnumEx MFTEnum の拡張バージョン。
MFTGetInfo CLSID によって MFT を検索し、レジストリ情報を取得します。
 

この関数は、 CoCreateInstance 関数または CoGetClassObject 関数の MFT の CLSID を登録しません。

レジストリからエントリを削除するには、 MFTUnregister を呼び出します。 システムから MFT を削除する場合は、常に MFTUnregister を呼び出す必要があります。

pInputTypes パラメーターと pOutputTypes パラメーターに指定された形式は、アプリケーションが形式で MFT を検索するのに役立ちます。 アプリケーションでは、 MFTEnum 関数または MFTEnumEx 関数を使用して、特定の形式のセットに一致する MFT を列挙できます。

pInputTypes で少なくとも 1 つの入力型を指定し、pOutputTypes パラメーターに 1 つの出力型を指定することをお勧めします。 それ以外の場合、MFT は列挙でスキップされる可能性があります。

64 ビット Windows の場合、この関数の 32 ビット バージョンでは、レジストリの 32 ビット ノードに MFT が登録されます。 詳細については、「レジストリ内 の 32 ビットおよび 64 ビットアプリケーション データ」を参照してください。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mfapi.h
Library Mfplat.lib
[DLL] Mfplat.dll

関連項目

MFTEnumEx

メディア ファンデーション機能

Media Foundation Transforms

_MFT_ENUM_FLAG