次の方法で共有


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

SetInputStreamState メソッドは、デバイス MFT 入力ストリームの状態とメディアの種類を設定します。

構文

HRESULT SetInputStreamState(
  [in] DWORD             dwStreamID,
  [in] IMFMediaType      *pMediaType,
  [in] DeviceStreamState value,
  [in] DWORD             dwFlags
);

パラメーター

[in] dwStreamID

状態とメディアの種類を変更する必要がある入力ストリームのストリーム ID。

[in] pMediaType

入力ストリームに推奨されるメディアの種類は、このパラメーターを介して渡されます。 デバイス MFT は、受信メディアの種類が現在のメディアの種類と異なる場合にのみ、メディアの種類を変更する必要があります。

[in] value

入力ストリームの遷移先となる DeviceStreamState を指定します。

[in] dwFlags

S_OKが返されたら、状態変更操作を実行します。 それ以外の場合は、devproxy 出力ピンでメディアの種類を設定するときに発生したエラーが含まれます。 この場合は、エラーを適切に伝達します。

戻り値

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

リターン コード 説明
S_OK
初期化に成功しました
MF_E_INVALIDREQUEST
現時点では、デバイス MFT は要求をサポートできませんでした。
MF_E_INVAILIDSTREAMNUMBER
無効なストリーム ID が渡されました。
MF_E_INVALID_STREAM_STATE
要求されたストリームの切り替えは不可能です。

解説

このインターフェイス関数は、入力ストリームで指定されたメディアの種類が設定された指定された状態に入力ストリームを切り替えるのに役立ちます。 これは、デバイス MFT が特定の入力ストリームの状態とメディアの種類の変更を要求するときに、デバイス変換マネージャー (DTM) によって使用されます。 デバイス MFT の出力のいずれかが変更された場合、デバイス MFT はこのような変更を要求する必要があります。

たとえば、2 つの入力ストリームと 3 つの出力ストリームを持つ Device MFT について考えてみましょう。 入力 1 の出力 1 と出力 2 のソースを 720p でストリーミングします。 ここで、Output 2 のメディアの種類が 1080p に変更された場合、デバイス MFT は入力 1 のメディアの種類を 1080p に変更する必要があります。 これを実現するには、デバイス MFT が METransformInputStreamStateChanged メッセージを使用してこのメソッドを呼び出すように DTM を要求する必要があります。

要件

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

関連項目

IMFDeviceTransform