IMFDeviceTransform::P rocessEvent メソッド (mftransform.h)
ProcessEvent メソッドは、この Media Foundation 変換 (MFT) の入力ストリームにイベントを送信します。
構文
HRESULT ProcessEvent(
[in] DWORD dwInputStreamID,
[in] IMFMediaEvent *pEvent
);
パラメーター
[in] dwInputStreamID
Stream識別子。 ストリーム識別子の一覧を取得するには、 IMFDeviceTransform::GetStreamIDs を呼び出します。
[in] pEvent
イベント オブジェクトの IMFMediaEvent インターフェイスへのポインター。
戻り値
このメソッドは HRESULT を返します。 使用できる値には、次の表に示す値が含まれますが、これらに限定されません。
リターン コード | 説明 |
---|---|
|
イベントが正常に処理されました。 イベントはストリームに反映されます。 |
|
無効なストリーム ID が渡されました。 |
|
デバイス MFT がイベントをさらに伝達することを望まないことを示します。 |
|
関数は実装されていません。 |
注釈
MFT では、ダウンストリームでのイベントの送信を処理することも、戻り値で示されているように、DTM でこれを行わせることもできます。
- E_notimpl: MFT はすべてのイベントを無視し、DTM はすべてのイベントをダウンストリームに送信する必要があります。 パイプラインがこの戻り値を受け取った後
- S_ok: MFT はこのイベントを調べましたが、DTM はイベントをダウンストリームに送信する必要があります。 内部的には、MFT は何らかの方法でイベントに応答したり、イベントを無視したりする可能性があります。
- MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT: DTM は、このイベントをダウンストリームに伝達しないでください。 MFT によってイベントがダウンストリームに送信されるか、それ以外の場合、MFT によってイベントが使用され、ダウンストリームに送信されません。 MFT は、イベントがこの MFT で停止し、それ以上下流に移動しない場合にのみ、イベントを使用する必要があります。 ただし、ほとんどの場合、イベントは下流に移動する必要があります。
イベントは、その前後にあるサンプルと共にシリアル化する必要があります。 イベントの後の出力サンプルにイベントをアタッチします。 (パイプラインは最初にイベントを処理し、次にサンプルを処理します)。 IMFTransform::P rocessInput と IMFTransform::ProcessOutput の呼び出しの間に MFT が 1 つ以上のサンプルを保持している場合、この状況ではパイプラインは入力サンプルを出力サンプルと関連付けることができないため、すべてのイベントのダウンストリーム送信を処理する必要があります。
MFT がサンプルを保持せず、イベントを調べる必要がない場合は、 E_NOTIMPLを返すことができます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 Version 1703 |
対象プラットフォーム | Windows |
ヘッダー | mftransform.h |