次の方法で共有


IMFDeviceTransform::GetStreamIDs メソッド (mftransform.h)

GetStreamIDs メソッドは、この Media Foundation 変換 (MFT) の入力ストリームと出力ストリームのストリーム識別子を取得します。

構文

HRESULT GetStreamIDs(
  [in]  DWORD dwInputIDArraySize,
  [out] DWORD *pdwInputStreamIds,
  [out] DWORD dwOutputIDArraySize,
        DWORD *pdwOutputStreamIds
);

パラメーター

[in] dwInputIDArraySize

pdwInputStreamIDs 内の要素の数

[out] pdwInputStreamIds

呼び出し元によって割り当てられた配列へのポインター。 メソッドは、配列に入力ストリーム識別子を入力します。 配列のサイズは、少なくとも入力ストリームの数と等しい必要があります。 入力ストリームの数を取得するには、 IMFDeviceTransform::GetStreamCount を呼び出します。

呼び出し元が入力ストリームの数より大きい配列を渡す場合、MFT は余分な配列エントリに値を書き込む必要があります。

[out] dwOutputIDArraySize

pdwOutputStreamIDs 内の要素の数。

pdwOutputStreamIds

呼び出し元によって割り当てられた配列へのポインター。 メソッドは、配列に出力ストリーム識別子を入力します。 配列のサイズは、少なくとも出力ストリームの数と等しい必要があります。 出力ストリームの数を取得するには、 IMFDeviceTransform::GetStreamCount を呼び出します。

戻り値

このメソッドは HRESULT を返します。 使用可能な値には、次の表に示す値が含まれますが、これらに限定されません。

リターン コード 説明
S_OK
ストリームの状態の切り替えに成功しました。
E_POINTER
無効なポインターが渡されました。
MF_E_BUFFERTOOSMALL
入ってくるバッファーには、ストリーム ID を埋めるのに十分な領域がありません。

解説

ストリーム識別子は、一部の MFT でストリームを追加または削除できるため、ストリームのインデックスが一意ではない可能性があるため、必要です。 そのため、ストリームを操作する IMFDeviceTransform メソッドはストリーム識別子を受け取ります。

すべての入力ストリーム識別子は MFT 内で一意である必要があり、すべての出力ストリーム識別子は一意である必要があります。 ただし、入力ストリームと出力ストリームは同じ識別子を共有できます。 I

クライアントが入力ストリームを追加する場合、クライアントは識別子を割り当てるので、一意である限り、MFT は任意の識別子を許可する必要があります。 MFT によって出力ストリームが作成される場合、MFT によって識別子が割り当てられます。

規則により、MFT に固定入力ストリームが 1 つだけあり、1 つの固定出力ストリームがある場合は、識別子 0 を両方のストリームに割り当てる必要があります。

要件

   
サポートされている最小のクライアント Windows 10 Version 1703
対象プラットフォーム Windows
ヘッダー mftransform.h

関連項目

IMFDeviceTransform