CPullPin-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.]
Die CPullPin
-Klasse bietet Unterstützung für Eingabenadeln, die Daten über die IAsyncReader-Schnittstelle abrufen. Verwenden Sie diese Klasse, wenn Sie einen Filter implementieren, der das Pullmodell verwendet, um Daten aus dem Upstream-Filter anzufordern. Weitere Informationen finden Sie unter Datenfluss im Filterdiagramm und Pullmodell.
Diese Klasse wird nicht von CBasePin abgeleitet oder implementiert die IPin-Schnittstelle , und einige der Methodennamen kollidieren mit IPin, sodass sie am besten als Hilfsobjekt in Ihrer Pin verwendet wird. Gehen Sie wie folgt vor, um diese Klasse zu verwenden:
- Leiten Sie eine Hilfsklasse von ab
CPullPin
, und leiten Sie eine Eingabeheftklasse von CBasePin ab. Deklarieren Sie eine instance desCPullPin
Objekts als Membervariable der Pinklasse. - Überschreiben Sie die CBasePin::CheckConnect-Methode , um CPullPin::Connect aufzurufen. Diese Methode fragt den anderen Pin nach IAsyncReader ab.
- Überschreiben Sie die CBasePin::BreakConnect-Methode , um CPullPin::D isconnect aufzurufen.
- Überschreiben Sie die CBasePin::Active-Methode , um CPullPin::Active aufzurufen. Mit dieser Methode wird ein Workerthread gestartet, der Beispiele aus dem Upstream-Filter abruft. Wenn die Pins eine Verbindung herstellen, können Sie angeben, ob der Workerthread asynchrone oder synchrone Leseanforderungen stellen soll.
- Überschreiben Sie die CBasePin::Inactive-Methode , um CPullPin::Inactive aufzurufen. Mit dieser Methode wird der Workerthread heruntergefahren.
- Implementieren Sie die reine virtuelle CPullPin::Receive-Methode , um eingehende Beispiele zu verarbeiten und nacheinander zu übermitteln.
- Um die Stopp- und Startpositionen festzulegen oder den Stream zu suchen, rufen Sie die CPullPin::Seek-Methode auf. Diese Methode hält den Workerthread an und löscht das Filterdiagramm.
- Implementieren Sie die reinen virtuellen Methoden CPullPin::EndOfStream, CPullPin::BeginFlush und CPullPin::EndFlush , wie in den Anmerkungen zu diesen Methoden beschrieben.
- Implementieren Sie die reine virtuelle CPullPin::OnError-Methode , um Streamingfehler zu behandeln.
Öffentliche Membervariablen | BESCHREIBUNG |
---|---|
m_pAlloc | Zeiger auf die IMemAllocator-Schnittstelle des Speicherzuteilungselements. |
Öffentliche Methoden | BESCHREIBUNG |
Aktiv | Erstellt einen Workerthread, der Daten vom Ausgabepin abruft. |
AlignDown | Schneidet einen Wert auf eine angegebene Ausrichtungsgrenze ab. |
Ausrichten | Rundet einen Wert auf eine angegebene Ausrichtungsgrenze auf. |
Verbinden | Schließt eine Verbindung mit dem Ausgabenadel ab. |
CPullPin | Konstruktormethode. |
~CPullPin | Destruktormethode. Virtuellen. |
DecideAllocator | Handelt eine Zuweisung mit dem Ausgabenadel aus. Virtuellen. |
Trennen | Beaks die Verbindung mit dem Ausgabenadel. |
Duration | Ruft die Dauer des Datenstroms ab. |
GetReader | Gibt einen Zeiger auf die IAsyncReader-Schnittstelle des Ausgabenadels zurück. |
Inaktiv | Fährt den Workerthread herunter, der Daten vom Ausgabenadel abruft. |
Seek | Legt die Start- und Stopppositionen des Streams fest. |
Reine virtuelle Methoden | BESCHREIBUNG |
BeginFlush | Informiert den besitzereigenen Filter, die nachgeschalteten Filter zu leeren. |
EndFlush | Informiert den besitzereigenen Filter, um einen Löschvorgang 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 Ausgabenadel empfängt. |
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|