データの入力と出力

Windows Media Playerにより割り当てられた入力バッファーを介して、DSP プラグインにオーディオまたはビデオ データが提供Windows Media Player。 DSP プラグインは、処理されたデータを、Windows Media Playerによって割り当てられた出力バッファーを介してデータにWindows Media Player。 Windows Media Player、プラグインによって実装されたメソッドを呼び出すことによって、それ自体と DSP プラグインの間でデータを渡すプロセスを管理します。 DirectX Media Object (DMO) として機能するプラグインの場合、このプロセスは次のように機能します。

  1. Windows Media Player IMediaObject::P rocessInput を呼び出し 、IMediaBuffer オブジェクトへのポインターを DSP プラグインに渡します。
  2. DSP プラグインは、入力バッファー オブジェクトの参照カウントを保持します。 DSP プラグインは、適切な成功または失敗 HRESULT を返します
  3. Windows Media Player IMediaObject::P rocessOutput を呼び出し、(出力バッファーを含む) DMO _ OUTPUT DATA _ _ BUFFER 構造体の配列へのポインターを DSP プラグインに渡します。
  4. DSP プラグインは、入力バッファー内のデータを処理し、適切な出力バッファーにデータをコピーします。 DSP プラグインは、バッファー内のすべてのデータが処理された場合に、入力バッファー オブジェクトの参照カウントを解放します。 その後、DSP プラグインは、適切な成功または失敗 HRESULT を返します
  5. Windows Media Player出力バッファーにコンテンツをレンダリングします。

新しい変換 (MFT) として機能メディア ファンデーションの場合、このプロセスは次のように機能します。

  • Windows Media Player IMFTransform::P rocessInput を呼び出し 、IMFSample インターフェイス オブジェクトへのポインターを DSP プラグインに渡します。
    1. DSP プラグインは 、IMFSample インターフェイスの参照カウントを保持します。 DSP プラグインは、適切な成功または失敗 HRESULT を返します
    2. Windows Media Player IMFTransform::P rocessOutput を呼び出し 、MFT _ OUTPUT DATA _ _ BUFFER 構造体 (出力バッファーを含む) の配列へのポインターを DSP プラグインに渡します。
    3. DSP プラグインは、入力バッファー内のデータを処理し、適切な出力バッファーにデータをコピーします。 DSP プラグインは、バッファー内のすべてのデータが処理された場合に、入力バッファー オブジェクトの参照カウントを解放します。 その後、DSP プラグインは、適切な成功または失敗 HRESULT を返します
    4. Windows Media Player出力バッファーにコンテンツをレンダリングします。

このプロセスは、プラグインが有効になっている間に継続的に繰り返され、レンダリングWindows Media Playerコンテンツが含まれる場合があります。

注意

入力バッファーにデータを書き込む、または出力バッファーからデータを読み取るコードを記述しない。 データ バッファーに誤ってアクセスすると、予期しない結果が生じる可能性があります。

DSP プラグイン開発者の概要