高度なトポロジの構築
このセクションでは、トポロジを構築するための高度な手法について説明します。 メディア セッションに送信するトポロジをより詳細に制御する場合は、これらの手法を使用できます。
これらの手法は、標準トポロジ ローダーによって提供される機能を超えるシナリオを対象としているため、詳細の多くはアプリケーションの特定の要件によって異なります。 したがって、このセクションは、完全なエンドツーエンドのシナリオではなく、小さなサブタスクに関して緩やかに整理されています。
一般的な再生アプリケーションは、次の手順に従います。
- アプリケーションは部分的なトポロジを構築し、メディア セッションでキューに入れます。
- メディア セッションはトポロジ ローダーを呼び出してトポロジを解決します。
トポロジ ローダーの機能を超えたい場合は、次の 3 つの一般的な方法があります。
完全なトポロジを構築します。 メディア セッションでトポロジをキューに入れると、MFSESSION_SETTOPOLOGY_NORESOLUTION フラグを使用して IMFMediaSession::SetTopology を呼び出します。 このフラグは、メディア セッションがトポロジの解決を試みないようにします。
トポロジ ローダーを直接呼び出してトポロジを解決します。 その後、メディア セッションでキューに入れる前に、完全なトポロジを変更できます。
カスタム トポロジ ローダーを実装します。 この方法では、部分的なトポロジをキューに入れますが、メディア セッションでは、標準の Media Foundation 実装ではなくカスタム ローダーが呼び出されます。 この方法の利点の 1 つは、保護された環境内でカスタム トポロジの構築を実行できることです。 (ただし、その場合、トポロジ ローダーは信頼できるコンポーネントである必要があります。詳細については、「 保護されたメディア パス」を参照してください)。
このセクションでは、次のトピックを扱います。
トピック | 説明 |
---|---|
カスタム トポロジ ローダー | メディア セッションに IMFTopoLoader のカスタム実装を提供する方法。 |
出力ノードをメディア シンクにバインドする | メディア セッションの外部でトポロジ ローダーを使用している場合に、トポロジ内の出力ノードを準備する方法。 |
トポロジへのデコーダーの追加 | デコーダーを手動で選択し、トポロジに追加する方法。 |
関連トピック