CPullPin-Klasse

cpullpin-Klassenhierarchie

Die CPullPin -Klasse bietet Unterstützung für Eingabepins, die Daten über die IAsyncReader-Schnittstelle pullen. Verwenden Sie diese Klasse, wenn Sie einen Filter implementieren, der das Pullmodell verwendet, um Daten vom Upstreamfilter anzufordern. Weitere Informationen finden Sie unter Daten Flow im Filter Graph und Pullmodell.

Diese Klasse wird nicht von CBasePin abgeleitet oder implementiert die IPin-Schnittstelle, und einige der Methodennamen treten mit IPin in Konflikt, daher wird sie am besten als Hilfsobjekt innerhalb ihrer Stecknadel verwendet. Gehen Sie wie folgt vor, um diese Klasse zu verwenden:

  1. Leiten Sie eine Hilfsklasse von CPullPin ab, und leiten Sie eine Eingabe-PIN-Klasse von CBasePin ab. Deklarieren Sie eine Instanz des CPullPin -Objekts als Membervariable der pin-Klasse.
  2. Überschreiben Sie die CBasePin::CheckConnect-Methode, um CPullPin::Verbindenaufzurufen. Diese Methode fragt den anderen Pin für IAsyncReader ab.
  3. Überschreiben Sie die CBasePin::BreakConnect-Methode, um CPullPin::D isconnectaufzurufen.
  4. Überschreiben Sie die CBasePin::Active-Methode, um CPullPin::Activeaufzurufen. Diese Methode startet einen Arbeitsthread, der Stichproben aus dem Upstreamfilter abruft. Wenn die Pins verbunden sind, können Sie angeben, ob der Arbeitsthread asynchrone oder synchrone Leseanforderungen stellen soll.
  5. Überschreiben Sie die CBasePin::Inactive-Methode, um CPullPin::Inactiveaufzurufen. Diese Methode fährt den Arbeitsthread herunter.
  6. Implementieren Sie die reine virtuelle CPullPin::Receive-Methode, um eingehende Stichproben zu verarbeiten und nachgeschaltet zu übermitteln.
  7. Um die Stopp- und Startpositionen festzulegen oder den Stream zu suchen, rufen Sie die CPullPin::Seek-Methode auf. Diese Methode hält den Arbeitsthread an und leert das Filterdiagramm.
  8. Implementieren Sie die rein virtuellen Methoden CPullPin::EndOfStream, CPullPin::BeginFlushund CPullPin::EndFlush, wie in den Hinweisen für diese Methoden beschrieben.
  9. Implementieren Sie die reine virtuelle CPullPin::OnError-Methode, um Streamingfehler zu behandeln.
Öffentliche Membervariablen BESCHREIBUNG
m _ pAlloc Zeiger auf die IMemAllocator-Schnittstelle der Speicherzuweisung.
Öffentliche Methoden BESCHREIBUNG
Aktiv Erstellt einen Arbeitsthread, der Daten vom Ausgabepin abruft.
AlignDown Schneidet einen Wert auf eine angegebene Ausrichtungsgrenze ab.
AlignUp Rundet einen Wert auf eine angegebene Ausrichtungsgrenze.
Verbinden Schließt eine Verbindung mit dem Ausgabepin ab.
CPullPin Konstruktormethode.
~CPullPin Destruktormethode. Virtuellen.
DecideAllocator Handelt eine Zuweisung mit dem Ausgabepin aus. Virtuellen.
Trennen Bekennt die Verbindung mit dem Ausgabepin.
Duration Ruft die Dauer des Streams ab.
GetReader Gibt einen Zeiger auf die IAsyncReader-Schnittstelle des Ausgabepins zurück.
Inaktiv Fährt den Arbeitsthread herunter, der Daten vom Ausgabepin abruft.
Seek Legt die Start- und Stopppositionen des Streams fest.
Reine virtuelle Methoden BESCHREIBUNG
BeginFlush Informiert den besitzenden Filter, um die Downstreamfilter zu leeren.
EndFlush Informiert den besitzenden Filter, um einen Leerungsvorgang zu beenden.
EndOfStream Wird aufgerufen, nachdem das -Objekt das letzte Beispiel übermittelt hat.
Onerror Wird aufgerufen, wenn während des Streamings ein Fehler auftritt.
Empfangen Wird aufgerufen, wenn das Objekt ein Medienbeispiel vom Ausgabepin empfängt.

Anforderungen

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