Übersicht über die Media Foundation Architektur

In diesem Thema wird der allgemeine Entwurf von Microsoft Media Foundation beschrieben. Informationen zur Verwendung von Media Foundation für bestimmte Programmieraufgaben finden Sie im Media Foundation-Programmierhandbuch.

Das folgende Diagramm zeigt eine übersichtliche Ansicht der Media Foundation-Architektur.

Diagramm, das eine obere Ansicht der Mediengrundarchitektur zeigt.

Media Foundation bietet zwei unterschiedliche Programmiermodelle. Das erste Modell, das auf der linken Seite des Diagramms angezeigt wird, verwendet eine End-to-End-Pipeline für Mediendaten. Die Anwendung initialisiert die Pipeline , z. B. durch Angabe der URL einer abzuspielenden Datei, und ruft dann Methoden zum Steuern des Streamings auf. Im zweiten Modell, das auf der rechten Seite des Diagramms angezeigt wird, pullt die Anwendung Entweder Daten aus einer Quelle oder pusht sie an ein Ziel (oder beides). Dieses Modell ist besonders nützlich, wenn Sie die Daten verarbeiten müssen, da die Anwendung direkten Zugriff auf den Datenstrom hat.

Primitive und Plattform

Ab dem unteren Rand des Diagramms sind die Primitive Hilfsobjekte, die in der gesamten Media Foundation-API verwendet werden:

  • Attribute sind eine generische Möglichkeit, Informationen in einem Objekt als Liste von Schlüssel-Wert-Paaren zu speichern.
  • Medientypen beschreiben das Format eines Mediendatenstroms.
  • Medienpuffer enthalten Blöcke von Mediendaten, z. B. Videoframes und Audiobeispiele, und werden zum Transport von Daten zwischen Objekten verwendet.
  • Medienbeispiele sind Container für Medienpuffer. Sie enthalten auch Metadaten zu den Puffern, z. B. Zeitstempel.

Die Media Foundation Platform-APIs bieten einige Kernfunktionen, die von der Media Foundation-Pipeline verwendet werden, z. B. asynchrone Rückrufe und Arbeitswarteschlangen. Bestimmte Anwendungen müssen diese APIs möglicherweise direkt aufrufen. Außerdem benötigen Sie sie, wenn Sie eine benutzerdefinierte Quelle, Transformation oder Senke für Media Foundation implementieren.

Medienpipeline

Die Medienpipeline enthält drei Objekttypen, die Mediendaten generieren oder verarbeiten:

  • Medienquellen führen Daten in die Pipeline ein. Eine Medienquelle kann Daten aus einer lokalen Datei abrufen, z. B. aus einer Videodatei. aus einem Netzwerkstream; oder von einem Hardwareerfassungsgerät.
  • Media Foundation Transforms (MFTs) verarbeiten Daten aus einem Stream. Encoder und Decoder werden als MFTs implementiert.
  • Mediensenken nutzen die Daten. z. B. durch Anzeigen von Videos auf der Anzeige, Wiedergeben von Audio oder Schreiben der Daten in eine Mediendatei.

Drittanbieter können ihre eigenen benutzerdefinierten Quellen, Senken und MFTs implementieren. beispielsweise, um neue Mediendateiformate zu unterstützen.

Die Mediensitzung steuert den Datenfluss durch die Pipeline und übernimmt Aufgaben wie Die Qualitätskontrolle, Audio-/Videosynchronisierung und das Reagieren auf Formatänderungen.

Quellleser und Senkenwriter

Source Reader und Sink Writer bieten eine alternative Möglichkeit, die grundlegenden Media Foundation Komponenten (Medienquellen, Transformationen und Mediensenken) zu verwenden. Der Quellleser hostet eine Medienquelle und null oder mehr Decoder, während der Senkenwriter eine Mediensenke und null oder mehr Encoder hostet. Sie können den Quellleser verwenden, um komprimierte oder nicht komprimierte Daten aus einer Medienquelle abzurufen, und den Senkenwriter verwenden, um Daten zu codieren und an eine Mediensenke zu senden.

Hinweis

Der Quellleser und der Senkenwriter sind in Windows 7 verfügbar.

Dieses Programmiermodell bietet der Anwendung mehr Kontrolle über den Datenfluss und ermöglicht der Anwendung außerdem direkten Zugriff auf die Daten aus der Quelle.

Media Foundation: Grundlegende Konzepte

Media Foundation-Architektur