Quellleser

Der Quellleser ist eine Alternative zur Verwendung der Mediensitzung und der Microsoft Media Foundation-Pipeline zum Verarbeiten von Mediendaten.

Gründe für die Verwendung des Quellleseberechtigten

Media Foundation stellt eine Pipeline bereit, die für die Wiedergabe optimiert ist. Die Pipeline ist End-to-End, d. h. sie verarbeitet den Datenfluss von der Quelle (z. B. einer Videodatei) bis zum Ziel (z. B. die Grafikanzeige). Wenn Sie jedoch die Daten lesen oder ändern möchten, während sie die Pipeline durchlaufen, müssen Sie ein benutzerdefiniertes Plug-In schreiben. Dies erfordert eine ziemlich tiefe Kenntnis der Media Foundation-Pipeline. Für bestimmte Aufgaben ist das Erstellen eines neuen Plug-Ins zu viel Aufwand. Der Quellleser ist für diese Art von Situation konzipiert, wenn Sie die Rohdaten ohne den Aufwand der gesamten Pipeline aus einer Quelle abrufen möchten.

Intern enthält der Quellleser einen Zeiger auf eine Medienquelle. Eine Medienquelle ist ein Media Foundation-Objekt, das Mediendaten aus einer externen Quelle generiert, z. B. aus einer Mediendatei oder einem Videoaufnahmegerät. Der Quellleser verwaltet alle Methodenaufrufe der Medienquelle. (Weitere Informationen zu Medienquellen finden Sie unter Medienquellen.)

Wenn die Medienquelle komprimierte Daten übermittelt, können Sie den Quellleser verwenden, um die Daten zu decodieren. In diesem Fall lädt der Quellleser den richtigen Decoder und verwaltet den Datenfluss zwischen der Medienquelle und dem Decoder. Der Quellleser kann auch einige eingeschränkte Videoverarbeitung durchführen: Farbkonvertierung von YUV in RGB-32 und Softwaredeinterlacing, obwohl diese Vorgänge für das Rendering von Videos in Echtzeit nicht empfohlen werden. Die folgende Abbildung veranschaulicht diesen Vorgang.

Diagramm des Quelllesegeräts

Der Quellleser sendet die Daten nicht an ein Ziel. es liegt an der Anwendung, die Daten zu nutzen. Beispielsweise kann der Quellleser eine Videodatei lesen, aber das Video wird nicht auf dem Bildschirm gerendert. Außerdem verwaltet der Quellleser keine Präsentationsuhr, behandelt Keine Zeitsteuerungsprobleme oder synchronisiert Video mit Audio.

Erwägen Sie die Verwendung des Quelllesers in folgenden Fällen:

  • Sie möchten Daten aus einer Mediendatei abrufen, ohne sich Gedanken über die zugrunde liegende Dateistruktur machen zu müssen.
  • Sie möchten Daten von einem Audio- oder Videoaufnahmegerät abrufen.
  • Ihre Datenverarbeitungsaufgaben sind nicht zeitabhängig, oder Sie benötigen keine Präsentationsuhr.
  • Sie verfügen bereits über eine Medienpipeline, die nicht auf Media Foundation basiert, und Sie möchten die Media Foundation-Medienquellen in Ihre eigene Pipeline integrieren.

Der Quellleser wird in den folgenden Situationen nicht empfohlen:

  • Für geschützte Inhalte. Der Quellleser unterstützt die Verwaltung digitaler Rechte (Digital Rights Management, DRM) nicht.
  • Wenn Sie sich um die Details der zugrunde liegenden Dateistruktur kümmern. Der Quellleser blendet diese Art von Detail aus.

In diesem Abschnitt

Thema Beschreibung
Verwenden des Quelllesers zum Verarbeiten von Mediendaten
In diesem Thema wird beschrieben, wie Sie den Quellleser zum Verarbeiten von Mediendaten verwenden.
Verwenden des Quelllesers im asynchronen Modus
In diesem Thema wird beschrieben, wie Sie den Quellleser im asynchronen Modus verwenden.
Tutorial: Decodieren von Audio
In diesem Tutorial erfahren Sie, wie Sie den Quellleser verwenden, um Audio aus einer Mediendatei zu decodieren und die Audiodaten in eine WAVE-Datei zu schreiben.

 

Media Foundation-Architektur

Programmierhandbuch für Media Foundation

IMFSourceReader