IMFTransform::SetOutputType メソッド (mftransform.h)

この Media Foundation 変換 (MFT) の出力ストリームのメディアの種類を設定、テスト、またはクリアします。

構文

HRESULT SetOutputType(
  [in] DWORD        dwOutputStreamID,
  [in] IMFMediaType *pType,
  [in] DWORD        dwFlags
);

パラメーター

[in] dwOutputStreamID

出力ストリーム識別子。 ストリーム識別子の一覧を取得するには、 IMFTransform::GetStreamIDs を呼び出します。

[in] pType

IMFMediaType インターフェイスへのポインター、または NULL

[in] dwFlags

_MFT_SET_TYPE_FLAGS列挙体の 0 個以上 フラグ。

戻り値

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
S_OK
メソッドが成功しました。
MF_E_INVALIDMEDIATYPE
変換では、提案されたメディアの種類を使用できません。
MF_E_INVALIDSTREAMNUMBER
ストリーム識別子が無効です。
MF_E_INVALIDTYPE
提案された型が無効です。 このエラー コードは、メディアの種類自体が正しく構成されていないことを示します。たとえば、相互に矛盾するフラグが含まれている場合があります。
MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING
MFT では、データの処理中に型を切り替えることはできません。 MFT をドレインまたはフラッシュしてみてください。
MF_E_TRANSFORM_TYPE_NOT_SET
出力の種類を設定する前に、入力の種類を設定する必要があります。
MF_E_UNSUPPORTED_D3D_TYPE
MFT では、適切な DirectX ビデオ アクセラレーション (DXVA) 構成が見つかりませんでした。

注釈

このメソッドは、メディアの種類を設定、設定せずにテスト、またはクリアするために使用できます。

  • メディアの種類を設定するには、 dwFlags を 0 に設定し、 pType を、メディアの種類を指定する NULL 以外のポインターに設定します。
  • メディアの種類を設定せずにテストするには、 dwFlagsMFT_SET_TYPE_TEST_ONLY に設定し、 pType を、メディアの種類を指定する NULL 以外のポインターに設定します。 メディアの種類が許容される場合、メソッドは S_OKを返します。 それ以外の場合は、 MF_E_INVALIDMEDIATYPEを返します。 戻り値に関係なく、現在のメディアの種類は変更されません。
  • メディアの種類をクリアするには、 pTypeNULL に設定します。
あるストリームでメディアの種類を設定すると、別のストリームで許容される型が変更される可能性があります。

MFT では、出力の種類を設定する前に、呼び出し元が 1 つ以上の入力型を設定する必要がある場合があります。 その場合、メソッドは MF_E_TRANSFORM_TYPE_NOT_SETを返します。

MFT が DirectX Video Acceleration (DXVA) をサポートしていても、適切な DXVA 構成が見つからない場合 (グラフィックス ドライバーに適切な機能がない場合など)、メソッドは MF_E_UNSUPPORTED_D3D_TYPEを返す必要があります。 詳細については、「 Media Foundation での DXVA 2.0 のサポート」を参照してください。

mftransform.h を含める前に MFT_UNIQUE_METHOD_NAMES が定義されている場合、このメソッドの名前は MFTSetOutputType に変更されます。 「ハイブリッド DMO/MFT オブジェクトの作成」を参照してください。

要件

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

こちらもご覧ください

IMFTransform

Media Foundation Transforms