Freigeben über


CBaseStreamControl-Klasse

[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.]

cbasestreamcontrol-Klassenhierarchie

Diese Klasse implementiert die IAMStreamControl-Schnittstelle für Eingabe- und Ausgabepins. Sie ermöglicht die Kontrolle über das Starten und Beenden eines einzelnen Pins am Filter. Ein Pin, der IAMStreamControl unterstützt, sollte von dieser Basisklasse erben. Es folgt eine typische Deklaration für einen Eingabenadel:

class CMyInputPin : public CBaseInputPin, public CBaseStreamControl

Achten Sie darauf, NonDelegatingQueryInteface zu überschreiben, um IAMStreamControl verfügbar zu machen. Weitere Informationen finden Sie unter Implementieren von IUnknown.

Öffentliche Methoden BESCHREIBUNG
CBaseStreamControl Konstruktormethode.
~CBaseStreamControl Destruktormethode.
CheckStreamState Bestimmt, ob ein Medienbeispiel übermittelt oder verworfen werden soll.
Spülung Benachrichtigt die Basisklasse, dass die Pin das Leeren gestartet oder beendet hat.
NotifyFilterState Benachrichtigt den Pin, wenn sich der Status des Filters ändert.
SetFilterGraph Gibt die Ereignissenke für Streamsteuerungsereignisse an.
SetSyncSource Benachrichtigt die Basisklasse der aktuellen Referenzuhr.
IAMStreamControl-Methoden BESCHREIBUNG
GetInfo Ruft Informationen zu den aktuellen Streamsteuerungseinstellungen ab, einschließlich der Start- und Stoppzeiten.
Startat Informiert die Pin, wann mit der Übermittlung von Daten begonnen werden soll.
Stopat Informiert die Pin, wann die Übermittlung von Daten beendet werden soll.

Bemerkungen

Diese Klasse erfordert den Pin und den besitzereigenen Filter, um die Klasse zu benachrichtigen, wenn verschiedene Ereignisse auftreten, z. B. der Filter, der das Diagramm zusammenschließt oder eine neue Referenzuhr empfängt. Sie sollten die folgenden Klassenmethoden aufrufen:

Die CBaseStreamControl -Klasse verwendet die Referenzuhr des Filterdiagramms, um zu bestimmen, welche Beispiele der Filter übermittelt und welche verworfen werden sollen. Rufen Sie in der IMemInputPin::Receive-Methode Ihrer Pin die CBaseStreamControl::CheckStreamState-Methode mit einem Zeiger auf das eingehende Medienbeispiel auf. Wenn die Methode den Wert STREAM_FLOWING zurückgibt, übermitteln Sie das Beispiel nachgeschaltet. Andernfalls verwerfen Sie es.

Anforderungen

Anforderung Wert
Header
Strmctl.h (include Streams.h)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)