IMFTransform::GetStreamIDs メソッド (mftransform.h)
この Media Foundation 変換 (MFT) の入力ストリームと出力ストリームのストリーム識別子を取得します。
構文
HRESULT GetStreamIDs(
[in] DWORD dwInputIDArraySize,
[out] DWORD *pdwInputIDs,
[in] DWORD dwOutputIDArraySize,
[out] DWORD *pdwOutputIDs
);
パラメーター
[in] dwInputIDArraySize
pdwInputIDs 配列内の要素の数。
[out] pdwInputIDs
呼び出し元によって割り当てられた配列へのポインター。 メソッドは、配列に入力ストリーム識別子を入力します。 配列のサイズは、少なくとも入力ストリームの数と等しい必要があります。 入力ストリームの数を取得するには、 IMFTransform::GetStreamCount を呼び出します。
呼び出し元が入力ストリームの数より大きい配列を渡す場合、MFT は余分な配列エントリに値を書き込む必要があります。
[in] dwOutputIDArraySize
pdwOutputIDs 配列内の要素の数。
[out] pdwOutputIDs
呼び出し元によって割り当てられた配列へのポインター。 メソッドは、配列に出力ストリーム識別子を入力します。 配列のサイズは、少なくとも出力ストリームの数と等しい必要があります。 出力ストリームの数を取得するには、 GetStreamCount を呼び出します。
呼び出し元が出力ストリームの数より大きい配列を渡す場合、MFT は余分な配列エントリに値を書き込む必要があります。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
実装されていません。 「解説」を参照してください。 |
|
配列の一方または両方が小さすぎます。 |
解説
ストリーム識別子は、一部の MFT でストリームを追加または削除できるため、ストリームのインデックスが一意ではない可能性があるため、必要です。 そのため、ストリームを操作する IMFTransform メソッドはストリーム識別子を受け取ります。
このメソッドは、次の両方の条件に該当する場合に E_NOTIMPL を返すことができます。
- 変換には固定数のストリームがあります。
- ストリームの番号は 0 から n から 1 まで連続して行われます。n は入力ストリームまたは出力ストリームの数です。 つまり、最初の入力ストリームは 0、2 番目は 1 などです。最初の出力ストリームは 0、2 番目は 1 などです。
- MFT では、出力ストリームを追加または削除できます。
- MFT を使用すると、クライアントは入力ストリームを追加または削除できます。
- ストリーム識別子は連続していません。
クライアントが入力ストリームを追加する場合、クライアントは識別子を割り当てるので、一意である限り、MFT は任意の識別子を許可する必要があります。 MFT によって出力ストリームが作成される場合、MFT によって識別子が割り当てられます。
規則により、MFT に固定入力ストリームが 1 つだけあり、1 つの固定出力ストリームがある場合は、識別子 0 を両方のストリームに割り当てる必要があります。
mftransform.h を含める前に MFT_UNIQUE_METHOD_NAMES が定義されている場合、このメソッドの名前は MFTGetStreamIDs に変更されます。 「ハイブリッド DMO/MFT オブジェクトの作成」を参照してください。
要件
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | mftransform.h |
Library | Mfuuid.lib |