MFT _ メッセージ コマンド _ の _ ドレイン

格納されているデータメディア ファンデーションドレインする新しい変換 (MFT) を要求します。

Message パラメーター

[なし] :

解説

このメッセージを送信するには 、IMFTransform::P rocessMessage を呼び出します

このメッセージが送信された後 、MFT が IMFTransform::P rocessInputへの以前の呼び出しからのすべてのデータを処理するまで、指定された入力ストリームは入力を受け入れしません。

ドレイン プロセスは、同期MFT と非同期 MFT の間で若干異なります。

同期 MFT

  1. クライアントからこのメッセージが送信された後 、ProcessOutput がエラー コード MF E TRANSFORM NEED MORE _ _ _ _ _ INPUT を返すまで、IMFTransform::P rocessOutput をループ内で呼び出します。
  2. MFT に処理するデータが残っている限り 、ProcessInput の呼び出しは失敗します。 MFT は、格納されているデータを使用するまで出力を生成し続ける。 MFT は、完全な出力サンプルに処理できないデータを破棄します。 (たとえば、部分的なビデオ フレームを削除する必要があります)。

非同期の MFT

  1. MFT は、処理するデータがこれ以上ないまで METransformHaveOutput イベントを送信し続ける。 この期間中 、METransformNeedInput イベントは送信されません。
  2. MFT は、最後の METransformHaveOutput イベントを送信した後 、METransformDrainComplete イベントを送信 します。
  3. ドレインが完了すると、MFT は、クライアントから MFT _ MESSAGE NOTIFY START _ OF _ _ _ STREAMメッセージを受信するまで、別の METransformNeedInputイベントを送信します。

クライアントが MFT をドレインすると、クライアントはさらに多くの入力データを送信できます。 ドレイン操作後の最初のサンプルには、不連続性属性 (MFSampleExtension _ Discontinuity 属性) が必要 です。

注意

このドキュメントの以前のバージョンでは 、ulParam イベント パラメーターが MFT DRAIN TYPE 列挙型の _ メンバーである _ 必要 _があります。 不正解です。 ulParam にはストリーム 識別子が含まれます。

実装

非同期 MFT は、ドレイン後に METransformDrainComplete を常に返す必要があります。

同期 MFT では、このメッセージを無視し、次の条件に当てはまる場合は S _ OK を返します。

  • MFT では、一度に複数の入力サンプルを格納する必要があります。
  • 各入力サンプルでは、1 つの出力サンプルが生成されます。

それ以外の場合は、同期 MFT でこのメッセージを実装する必要があります。

要件

要件
サポートされている最小のクライアント
WindowsVista [ デスクトップ アプリのみ]
サポートされている最小のサーバー
WindowsServer 2008 [ デスクトップ アプリのみ]
ヘッダー
Mftransform.h

こちらもご覧ください

MFT _ メッセージ _ の種類

非同期の MFT