Freigeben über


CBaseFilter-Klasse

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

cbasefilter-Klassenhierarchie

Die CBaseFilter -Klasse ist eine abstrakte Klasse zum Implementieren von Filtern. Um einen Filter mit dieser Klasse zu implementieren, müssen Sie mindestens die folgenden Schritte ausführen:

  • Leiten Sie eine neue Klasse von ab CBaseFilter.
  • Schließen Sie Membervariablen ein, die die Pins für den Filter definieren. Die Pins müssen von der CBasePin-Klasse erben.
  • Überschreiben Sie die reine virtuelle Methode CBaseFilter::GetPin, die Pins für den Filter abruft.
  • Überschreiben Sie die reine virtuelle Methode CBaseFilter::GetPinCount, die die Anzahl der Pins abruft.
  • Stellen Sie Methoden zum Generieren, Verarbeiten oder Rendern von Medienbeispielen bereit.

Mehrere Basisklassen werden von CBaseFilterabgeleitet, einschließlich CSource, CBaseRenderer und CTransformFilter. Es ist in der Regel einfacher, einen Filter mit einer dieser spezialisierten Klassen zu implementieren, anstatt direkt zu verwenden CBaseFilter .

Geschützte Membervariablen BESCHREIBUNG
m_State Aktueller Status des Filters.
m_pClock Zeiger auf die Referenzuhr des Filters.
m_tStart Referenzzeit, die der Streamzeit 0 entspricht.
m_clsid Klassenbezeichner (CLSID) des Filters.
m_pLock Zeiger auf einen kritischen Abschnitt, der zum Serialisieren von Zustandsänderungen verwendet wird.
m_pName Filtername.
m_pGraph Zeiger auf den Filtergraph-Manager.
m_pSink Zeiger auf die IMediaEventSink-Schnittstelle im Filtergraph-Manager.
m_PinVersion Aktuelle Version der Pins für diesen Filter.
Öffentliche Methoden BESCHREIBUNG
CBaseFilter Konstruktormethode.
~ CBaseFilter Destruktormethode.
StreamTime Ruft die aktuelle Streamzeit ab. Virtuellen.
IsActive Bestimmt, ob der Filter derzeit aktiv ist (ausgeführt oder angehalten).
IsStopped Bestimmt, ob der Filter derzeit beendet ist.
NotifyEvent Sendet eine Ereignisbenachrichtigung an den Filtergraph-Manager.
GetFilterGraph Ruft einen Zeiger auf den Filtergraph-Manager ab.
Wiederherstellen der VerbindungPin Unterbricht eine vorhandene Pinverbindung und verbindet sie erneut mit demselben Pin, wobei ein angegebener Medientyp verwendet wird.
GetPinVersion Ruft eine Versionsnummer für den Satz von Pins für diesen Filter ab. Virtuellen.
IncrementPinVersion Erhöht die Versionsnummer für die Pins.
GetSetupData Ruft die Registrierungsdaten für den Filter ab. Virtuellen.
Reine virtuelle Methoden BESCHREIBUNG
GetPinCount Ruft die Anzahl der Pins ab.
GetPin Ruft eine Stecknadel ab.
IPersist-Methoden BESCHREIBUNG
Getclassid Ruft den Klassenbezeichner ab.
IMediaFilter-Methoden BESCHREIBUNG
GetState Ruft den Status des Filters ab (wird ausgeführt, beendet oder angehalten).
SetSyncSource Legt eine Verweisuhr für den Filter fest.
GetSyncSource Ruft die Referenzuhr ab, die der Filter verwendet.
Beenden Beendet den Filter.
Anhalten Hält den Filter an.
Ausführung Führt den Filter aus.
IBaseFilter-Methoden BESCHREIBUNG
EnumPins Listet die Pins für diesen Filter auf.
FindPin Ruft die Pin mit dem angegebenen Bezeichner ab.
QueryFilterInfo Ruft Informationen zum Filter ab.
JoinFilterGraph Benachrichtigt den Filter, dass er ein Filterdiagramm verknüpft oder verlassen hat.
QueryVendorInfo Ruft eine Zeichenfolge ab, die Anbieterinformationen enthält.
IAMovieSetup-Methoden BESCHREIBUNG
Registrieren Fügt den Filter der Registrierung hinzu.
Unregister Entfernt den Filter aus der Registrierung.

Anforderungen

Anforderung Wert
Header
Amfilter.h (streams.h einschließen)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)