Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[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 |
|