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 は、ソフトウェアで非同期処理を実行します。 「非同期 MFT」を参照してください。 このフラグは、ハードウェア変換には適用されません。
Windows 7 が必要です。 |
|
MFT を使用するには、アプリケーションで MFT のロックを解除する必要があります。 「IMFFieldOfUseMFTUnlock」を参照してください。
Windows 7 が必要です。 |
|
MFT は、AVStream ドライバーまたは GPU ベースのプロキシ MFT を使用して、ハードウェア ベースのデータ処理を実行します。 このカテゴリの MFT は、常にデータを非同期的に処理します。 「ハードウェア MFT」を参照してください。
メモ このフラグは、ハードウェアで動作を完全に実行するビデオ コーデックとビデオ プロセッサに適用されます。 DirectX ビデオ アクセラレーションを使用してデコードを支援するソフトウェア デコーダーには適用されません。
|
|
MFT はソフトウェアで同期処理を実行します。 このフラグは、ハードウェア変換には適用されません。 |
|
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 関数を使用して、属性を取得できます。
このパラメーターには、次の属性が定義されています。
値 | 説明 |
---|---|
ハードウェア コーデックのメリット値が含まれています。 コーデックのメリットに関するページを参照してください。 |
戻り値
この関数が成功すると、 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 |