次の方法で共有


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

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

構文

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

パラメーター

[in] dwStreamID

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

[in] pMediaType

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

[in] value

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

[in] dwFlags

ゼロを指定してください。

戻り値

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

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

解説

このインターフェイス メソッドは、出力ストリームに指定されたメディアの種類が設定された指定された状態に出力ストリームを移行するのに役立ちます。 これは、デバイス ソースが特定の出力ストリームの状態とメディアの種類の変更を要求するときに、DTM によって使用されます。 デバイス MFT は、指定された出力ストリームのメディアの種類と状態を要求されたメディアの種類に変更する必要があります。

受信メディアの種類とストリームの状態が現在のメディアの種類とストリームの状態と同じ場合、メソッドは S_OKを返します。

ストリームの受信メディアの種類と現在のメディアの種類が同じ場合、デバイス MFT はストリームの状態を要求された値に変更し、適切な HRESULT を返す必要があります。

出力ストリームのメディアタイプの変更に対応する入力の変更が必要な場合、デバイス MFT は、関連する入力ストリームを変更するために METransformInputStreamStateChanged イベントを DTM にポストする必要があります。 呼び出しは、入力ストリームのメディアの種類と適切な HRESULT を変更した後にのみを返す必要があります。

たとえば、2 つの入力ストリームと 3 つの出力ストリームを持つ Device MFT を考えてみましょう。 入力 1 の出力 1 と出力 2 のソースを、720p でストリームします。 ここで、Output 2 のメディアの種類が 1080p に変わるとします。 この要求を満たすために、デバイス MFT は 、METransformInputStreamStateChanged イベントを DTM にポストすることによって、Input 1 メディア タイプを 1080p に変更する必要があります。 DTM は SetInputStreamState を 呼び出して、入力ストリームのメディアの種類と状態を変更します。 この呼び出しの後、 SetOutputStreamState は を返す必要があります。

要件

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

関連項目

IMFDeviceTransform