CBaseFilter-Klasse

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 CBaseFilter ab.
  • Schließen Sie Membervariablen ein, die die Stecknadeln 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 zur Verfügung.

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

Geschützte Membervariablen BESCHREIBUNG
_m-Status Aktueller Status des Filters.
m _ pClock Zeiger auf die Referenzuhr des Filters.
m _ tStart Verweiszeit, 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 Filterdiagramm-Manager.
m _ pSink Zeiger auf die IMediaEventSink-Schnittstelle im Filterdiagramm-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 (wird ausgeführt oder angehalten).
IsStopped Bestimmt, ob der Filter derzeit beendet wird.
NotifyEvent Sendet eine Ereignisbenachrichtigung an den Filterdiagramm-Manager.
GetFilterGraph Ruft einen Zeiger auf den Filterdiagramm-Manager ab.
ReconnectPin Unterbricht eine vorhandene Stecknadelverbindung und verbindet sie mithilfe eines angegebenen Medientyps erneut mit demselben Pin.
GetPinVersion Ruft eine Versionsnummer für den Satz von Stecknadeln für diesen Filter ab. Virtuellen.
IncrementPinVersion Inkrementiert die Versionsnummer für den Satz von Stecknadeln.
GetSetupData Ruft die Registrierungsdaten für den Filter ab. Virtuellen.
Rein virtuelle Methoden BESCHREIBUNG
GetPinCount Ruft die Anzahl der Stecknadeln ab.
GetPin Ruft eine Stecknadel ab.
IPersist-Methoden BESCHREIBUNG
Getclassid Ruft den Klassenbezeichner ab.
IMediaFilter-Methoden BESCHREIBUNG
GetState Ruft den Zustand des Filters ab (wird ausgeführt, beendet oder angehalten).
SetSyncSource Legt eine Verweisuhr für den Filter fest.
GetSyncSource Ruft die Verweisuhr ab, die der Filter verwendet.
Beenden Beendet den Filter.
Pause Hält den Filter an.
Ausführung Führt den Filter aus.
IBaseFilter-Methoden BESCHREIBUNG
EnumPins Listet die Stecknadeln für diesen Filter auf.
FindPin Ruft den Pin mit dem angegebenen Bezeichner ab.
QueryFilterInfo Ruft Informationen zum Filter ab.
JoinFilterGraph Benachrichtigt den Filter, dass er ein Filterdiagramm verbunden oder verlassen hat.
QueryVendorInfo Ruft eine Zeichenfolge ab, die Herstellerinformationen enthält.
IAMovieSetup-Methoden BESCHREIBUNG
Registrieren Fügt der Registrierung den Filter hinzu.
Unregister Entfernt den Filter aus der Registrierung.

Requirements (Anforderungen)

Anforderung Wert
Header
Amfilter.h (include Streams.h)
Bibliothek
Strmbase.lib (Verkaufsbuilds);
Strmbasd.lib (Debugbuilds)