Informationen zu Topologien

Eine Topologie ist ein Objekt, das darstellt, wie Daten in der Pipeline fließen. Eine Anwendung erstellt eine Topologie, um den Pfad zu beschreiben, den jeder Stream von der Medienquelle zu einer Mediensenke führt. Die Anwendung übergibt die Topologie an die Mediensitzung, und die Mediensitzung verwendet die Topologie, um den Datenfluss zu steuern.

Die Datenverarbeitungskomponenten in der Pipeline (Medienquellen, Transformationen und Mediensenken) werden in der Topologie als Knoten dargestellt. Der Datenfluss von einer Komponente zur anderen wird durch eine Verbindung zwischen den Knoten dargestellt. Die folgenden Knotentypen werden definiert:

  • Quellknoten: Stellt einen Mediendatenstrom auf einer Medienquelle dar.
  • Transformationsknoten: Stellt eine Media Foundation-Transformation (MFT) dar.
  • Ausgabeknoten: Stellt eine Streamsenke auf einer Mediensenke dar.
  • Abschlagknoten: Stellt einen Fork im Stream dar. Teeknoten sind eine Ausnahme von der Regel, dass ein Knoten ein Pipelineobjekt darstellt. Im Gegensatz zu anderen Knotentypen leitet der Tee-Knoten einfach den Datenfluss.

Eine funktionierende Topologie muss mindestens einen Quellknoten enthalten, der mit einem Ausgabeknoten verbunden ist, möglicherweise über einen oder mehrere Transformationsknoten. Das folgende Diagramm zeigt beispielsweise eine einfache Topologie mit einem Stream.

Ein Diagramm, das eine Topologie mit einem Stream zeigt.

Bei der Dateiwiedergabe stellt der Transformationsknoten möglicherweise einen Decoder und der Ausgabeknoten den Audio- oder Videorenderer dar. Bei der Dateicodierung stellt der Transformationsknoten einen Encoder dar, und der Ausgabeknoten eine Archivsenke, z. B. die ASF-Dateisenke.

Wenn zwei Knoten verbunden sind, wird der Knoten, der Daten erzeugt, als Upstream-Knoten bezeichnet, und der Knoten, der Daten empfängt, wird als Downstreamknoten bezeichnet. Im vorherigen Diagramm wird beispielsweise der Quellknoten vom Transformationsknoten Upstream.

In einem Paar verbundener Knoten wird der Verbindungspunkt auf dem Upstream Knoten als Ausgabe bezeichnet. Der Verbindungspunkt auf dem Downstreamknoten wird als Eingabe bezeichnet. Das folgende Diagramm zeigt ein Knotenpaar mit ihren Verbindungspunkten und den Datenfluss zwischen ihnen. Die Verbindungspunkte werden nicht als separate Objekte in der Topologie dargestellt. Sie werden durch den Indexwert für das Knotenobjekt angegeben.

Ein Diagramm, das zwei verbundene Knoten zeigt.

Ein Quellknoten darf keine Eingaben aufweisen. Daher können keine Knoten von einem Quellknoten Upstream werden. Ebenso kann ein Ausgabeknoten keine Ausgaben aufweisen, und es kann keine Knoten nachgeschaltet von einem Ausgabeknoten geben. Eine Kette von Knoten von einem Quellknoten zu einem Ausgabeknoten wird als Branch der Topologie bezeichnet. Das erste Diagramm in diesem Thema zeigt eine Topologie mit einem einzelnen Branch. In der Regel gibt es einen Branch pro Stream. Um beispielsweise eine Datei mit einem Audio- und einem Videostream wiederzugeben, ist eine Topologie mit zwei Verzweigungen erforderlich.

Partielle Topologien

Eine vollständige oder vollständige Topologie enthält einen Knoten für jedes erforderliche Pipelineobjekt. Die Anwendung muss jedoch nicht immer eine vollständige Topologie erstellen. Stattdessen wird eine partielle Topologie erstellt, die einen oder mehrere Transformationsknoten auslässt.

Die Mediensitzung schließt die Topologie mithilfe eines Objekts namens Topologieladeprogramm ab. Der Topologieladeprogramm konvertiert Teiltopologien in vollständige Topologien, indem die erforderlichen Transformationen eingefügt werden. Der Konvertierungsprozess wird als Auflösen der Topologie bezeichnet.

Um beispielsweise einen codierten Audiodatenstrom wiederzugeben, muss die Topologie über einen Decoder zwischen den Quell- und Ausgabeknoten verfügen. Die Anwendung erstellt eine partielle Topologie, die den Quellknoten ohne den Decoder direkt mit dem Ausgabeknoten verbindet. Das Topologieladeprogramm untersucht die Streamformate, sucht den richtigen Decoder und fügt einen Transformationsknoten in die Topologie ein.

Das folgende Diagramm zeigt die partielle Topologie, die von der Anwendung erstellt wurde.

Ein Diagramm, das einen Teil mit einem Quell- und Ausgabeknoten zeigt.

Das nächste Diagramm zeigt die vollständige Topologie, nachdem sie vom Topologieladeprogramm aufgelöst wurde. In diesem Beispiel hat der Topologieladeprogramm einen Transformationsknoten für den Decoder eingefügt.

ein Diagramm, das eine vollständige Topologie zeigt.

In der aktuellen Version von Media Foundation unterstützt das Topologieladeprogramm Topologien für die Wiedergabe. Für die Dateicodierung und andere Szenarien muss die Anwendung eine vollständige Topologie erstellen.

Anwendungen können den Topologieladeer auch erstellen und direkt verwenden. Beispielsweise können Sie den Topologieladeprogramm verwenden, um eine partielle Topologie aufzulösen und dann die vollständige Topologie zu ändern, bevor Sie sie an die Mediensitzung geben. Zum Erstellen des Topologieladeprogramms rufen Sie MFCreateTopoLoader auf.

Topologien