COutputQueue-Klasse

Die COutputQueue -Klasse implementiert eine Warteschlange zum Senden von Medienbeispielen.
Diese Klasse ermöglicht es einem Ausgabepin, Stichproben asynchron zu liefern. Beispiele werden in einer Warteschlange platziert, und ein Arbeitsthread übergibt sie an den Eingabepin. Die Warteschlange kann auch Steuermeldungen enthalten, die auf ein neues Segment, eine Benachrichtigung am Ende des Streams oder einen Leerungsvorgang hinweisen.
Um diese Klasse zu verwenden, erstellen Sie ein COutputQueue-Objekt für jeden Ausgabepin im Filter. Geben Sie in der Konstruktormethode den Eingabepin an, der mit diesem Ausgabepin verbunden ist. Bei Verwendung dieser Klasse werden methoden vom Ausgabepin nicht direkt auf dem Eingabepin aufruft. Stattdessen ruft sie die entsprechenden Methoden in COutputQueue auf, wie in der folgenden Tabelle gezeigt.
| Pin-Methode | COutputQueue-Methode |
|---|---|
| IPin::BeginFlush | BeginFlush |
| IPin::EndFlush | EndFlush |
| IPin::EndOfStream | EOS |
| IPin::NewSegment | NewSegment |
| IMemInputPin::Receive | Empfangen |
| IMemInputPin::ReceiveMultiple | ReceiveMultiple |
Optional können Sie das -Objekt so konfigurieren, COutputQueue dass Beispiele synchron ohne Arbeitsthread zugestellt werden. Das -Objekt kann auch zur Laufzeit basierend auf den Merkmalen des Eingabepins entscheiden, ob ein Arbeitsthread verwendet werden soll. Weitere Informationen finden Sie unter COutputQueue::COutputQueue.
| Geschützte Membervariablen | Beschreibung |
|---|---|
| m _ pPin | Zeiger auf die IPin-Schnittstelle des Eingabepins. |
| m _ pInputPin | Zeiger auf die IMemInputPin-Schnittstelle des Eingabepins. |
| m _ bBatchExact | Flag, das angibt, ob das Objekt Stichproben in genauen Batches liefert. |
| m _ lBatchSize | Batchgröße. |
| _m-Liste | Medienbeispielwarteschlange. |
| m _ hSem | Handle für ein Semaphor, das vom Thread verwendet wird, um auf Stichproben zu warten. |
| m _ evFlushComplete | Ereignis, das signalisiert, wenn ein Leerungsvorgang abgeschlossen wurde. |
| m _ hThread | Handle für den Arbeitsthread. |
| m _ ppSamples | Array von Beispielen der Größe COutputQueue::m _ lBatchSize. |
| m _ nBatched | Anzahl von Stichproben, die derzeit als Batch verarbeitet werden und auf die Verarbeitung wartet. |
| m _ lWaiting | Flag mit einem Wert ungleich 0 (null), wenn der Thread auf ein Beispiel wartet. |
| m _ bFlushing | Flag, das angibt, ob das Objekt einen Leerungsvorgang vorgibt. |
| m _ bTerminate | Flag, das angibt, ob der Thread beendet werden soll. |
| m _ bSendAnyway | Flag zum Überschreiben der Batchverarbeitung. |
| m _ hr | HRESULT-Wert, der angibt, ob das Objekt Stichproben akzeptiert. |
| m _ hEventPop | Ereignis, das signalisiert wird, wenn das Objekt ein Beispiel aus der Warteschlange entfernt. |
| Geschützte Methoden | Beschreibung |
| InitialThreadProc | Ruft die COutputQueue::ThreadProc-Methode auf, wenn der Thread erstellt wird. |
| ThreadProc | Ruft Beispiele aus der Warteschlange ab und übergibt sie an den Eingabepin. |
| IsQueued | Bestimmt, ob das -Objekt einen Arbeitsthread verwendet, um Beispiele zu liefern. |
| QueueSample | Reiht ein Medienbeispiel oder eine Steuernachricht in die Warteschlange ein. |
| IsSpecialSample | Bestimmt, ob Daten in der Warteschlange eine Steuermeldung sind. |
| FreeSamples | Gibt alle ausstehenden Beispiele frei. |
| NotifyThread | Benachrichtigt den Thread, dass die Warteschlange Daten enthält. |
| Öffentliche Methoden | Beschreibung |
| COutputQueue | Konstruktormethode. |
| ~COutputQueue | Destruktormethode. |
| BeginFlush | Startet einen Leerungsvorgang. |
| EndFlush | Beendet einen Leerungsvorgang. |
| EOS | Übergibt einen End-of-Stream-Aufruf an den Eingabepin. |
| SendAnyway | Stellt alle ausstehenden Beispiele zur Verfügung. |
| NewSegment | Übergibt ein neues Segment an den Eingabepin. |
| Empfangen | Übergibt ein Medienbeispiel an den Eingabepin. |
| ReceiveMultiple | Stellt einen Batch von Medienbeispielen an den Eingabepin zur Verfügung. |
| Zurücksetzen | Setzt das -Objekt zurück, damit es mehr Daten empfangen kann. |
| IsIdle | Bestimmt, ob das Objekt auf Daten wartet. |
| SetPopEvent | Gibt ein Ereignis an, das signalisiert wird, wenn das Objekt ein Beispiel aus der Warteschlange entfernt. |
Anforderungen
| Anforderung | Wert |
|---|---|
| Header |
|
| Bibliothek |
|