Schreiben von Transformationsfiltern
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]
In diesem Abschnitt wird beschrieben, wie Sie einen Transformationsfilter schreiben, der als Filter definiert ist, der genau über einen Eingabenadel und einen Ausgabestift verfügt. Um die Schritte zu veranschaulichen, beschreibt dieser Abschnitt einen hypothetischen Transformationsfilter, der RLE-Video (Run-Length Codd codd) ausgibt. Es beschreibt nicht den RLE-Codierungsalgorithmus selbst, nur die Aufgaben, die für DirectShow spezifisch sind. (DirectShow stellt bereits einen RLE-Codec über den AVI Compressor-Filter bereit.)
In diesem Abschnitt wird davon ausgegangen, dass Sie die DirectShow-Basisklassenbibliothek verwenden, um Filter zu erstellen. Obwohl Sie einen Filter ohne ihn schreiben können, wird die Basisklassenbibliothek dringend empfohlen.
Hinweis
Überlegen Sie vor dem Schreiben eines Transformationsfilters, ob ein DirectX Media Object (DMO) Ihre Anforderungen erfüllen würde. DMOs können viele der gleichen Dinge wie Filter ausführen, und das Programmiermodell für DMOs ist einfacher. DMOs werden in DirectShow über den DMO Wrapper-Filter gehostet, können aber auch außerhalb von DirectShow verwendet werden. DMOs sind jetzt die empfohlene Lösung für Encoder und Decoder.
Dieser Abschnitt schließt folgende Themen ein:
- Schritt 1: Auswählen einer Basisklasse
- Schritt 2: Deklarieren der Filterklasse
- Schritt 3 Medientypverhandlung unterstützen
- Schritt 4. Festlegen von Zuordnungseigenschaften
- Schritt 5: Transformieren des Bilds
- Schritt 6: Hinzufügen von Support für COM
Zugehörige Themen