Share via


高度なトポロジの構築

このセクションでは、トポロジを構築するための高度な手法について説明します。 メディア セッションに送信するトポロジをより詳細に制御する場合は、これらの手法を使用できます。

これらの手法は、標準トポロジ ローダーによって提供される機能を超えるシナリオを対象としているため、詳細の多くはアプリケーションの特定の要件によって異なります。 したがって、このセクションは、完全なエンドツーエンドのシナリオではなく、小さなサブタスクに関して緩やかに整理されています。

一般的な再生アプリケーションは、次の手順に従います。

  1. アプリケーションは部分的なトポロジを構築し、メディア セッションでキューに入れます。
  2. メディア セッションはトポロジ ローダーを呼び出してトポロジを解決します。

トポロジ ローダーの機能を超えたい場合は、次の 3 つの一般的な方法があります。

  • 完全なトポロジを構築します。 メディア セッションでトポロジをキューに入れると、MFSESSION_SETTOPOLOGY_NORESOLUTION フラグを使用して IMFMediaSession::SetTopology を呼び出します。 このフラグは、メディア セッションがトポロジの解決を試みないようにします。

  • トポロジ ローダーを直接呼び出してトポロジを解決します。 その後、メディア セッションでキューに入れる前に、完全なトポロジを変更できます。

  • カスタム トポロジ ローダーを実装します。 この方法では、部分的なトポロジをキューに入れますが、メディア セッションでは、標準の Media Foundation 実装ではなくカスタム ローダーが呼び出されます。 この方法の利点の 1 つは、保護された環境内でカスタム トポロジの構築を実行できることです。 (ただし、その場合、トポロジ ローダーは信頼できるコンポーネントである必要があります。詳細については、「 保護されたメディア パス」を参照してください)。

このセクションでは、次のトピックを扱います。

トピック 説明
カスタム トポロジ ローダー メディア セッションに IMFTopoLoader のカスタム実装を提供する方法。
出力ノードをメディア シンクにバインドする メディア セッションの外部でトポロジ ローダーを使用している場合に、トポロジ内の出力ノードを準備する方法。
トポロジへのデコーダーの追加 デコーダーを手動で選択し、トポロジに追加する方法。

 

トポロジ