Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Das dieser Seite zugeordnete Feature DirectShow-ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngineund Audio/Video Capture in Media Foundationersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code MediaPlayer-, IMFMediaEngine und Audio-/Videoaufnahme in Media Foundation anstelle von DirectShow-verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]
Um Mediendaten über das Filterdiagramm zu verschieben, muss ein DirectShow-Filter eines von mehreren möglichen Protokollen unterstützen. Diese Protokolle werden als Transporte bezeichnet. Wenn zwei Filter eine Verbindung herstellen, müssen sie denselben Transport unterstützen; andernfalls können sie keine Mediendaten austauschen. In der Regel erfordert ein Transport, dass einer der Pins eine bestimmte Schnittstelle unterstützt. Wenn die Filter eine Verbindung herstellen, fragt ein Pin die andere nach der Schnittstelle ab.
Die meisten DirectShow-Filter enthalten Mediendaten im Hauptspeicher und liefern sie an andere Filter über Pinverbindungen hinweg. Dieser Transporttyp wird als lokaler Speichertransport bezeichnet. Obwohl der lokale Speichertransport der häufigste Transport in DirectShow ist, verwenden nicht alle Filter sie. Beispielsweise senden einige Filter Mediendaten entlang eines Hardwarepfads und verwenden Pins nur zum Bereitstellen von Steuerelementinformationen. Siehe beispielsweise die IOverlay Schnittstelle.
DirectShow definiert zwei Mechanismen für den lokalen Speichertransport, das Pushmodell und das Pullmodell. Im Pushmodell generiert ein Quellfilter Daten und liefert ihn nach unten an den nächsten Filter. Dieser Filter empfängt passiv die Daten, verarbeitet sie und sendet sie weiter nach unten. Im Pullmodell ist der Quellfilter mit einem Parserfilter verbunden. Der Parserfilter fordert Daten aus dem Quellfilter an. Der Quellfilter antwortet auf die Anforderungen, indem Daten bereitgestellt werden. Das Pushmodell verwendet die IMemInputPin--Schnittstelle, und das Pullmodell verwendet die IAsyncReader--Schnittstelle.
Das Pushmodell ist häufiger als das Pullmodell. Daher gehen die folgenden Artikel von einem Pushmodell aus. Der letzte Artikel in diesem Abschnitt, Pull Model, beschreibt, wie sich die IAsyncReader-schnittstelle von IMemInputPinunterscheidet.
Verwandte Themen