COutputQueue-Klasse
Die COutputQueue
Klasse implementiert eine Warteschlange zum Bereitstellen von Medienbeispielen.
Diese Klasse ermöglicht eine Ausgabehefte zum asynchronen Bereitstellen von Beispielen. Beispiele werden in einer Warteschlange platziert, und ein Arbeitsthread liefert sie an die Eingabehefte. Die Warteschlange kann auch Steuerelementnachrichten enthalten, die ein neues Segment, eine End-of-Stream-Benachrichtigung oder einen Spülvorgang angeben.
Um diese Klasse zu verwenden, erstellen Sie ein COutputQueue-Objekt für jede Ausgabehefte auf dem Filter. Geben Sie in der Konstruktormethode den Eingabeheften an, der mit dieser Ausgabehefte verbunden ist. Mit dieser Klasse ruft die Ausgabehefte keine Methoden direkt auf der Eingabehefte auf. Stattdessen ruft sie entsprechende Methoden in , wie in COutputQueue
der folgenden Tabelle dargestellt.
Pin-Methode | COutputQueue-Methode |
---|---|
IPin::BeginFlush | BeginFlush |
IPin::EndFlush | EndFlush |
IPin::EndOfStream | EOS |
IPin::NewSegment | NewSegment |
IMemInputPin::Empfangen | Erhalten |
IMemInputPin::ReceiveMultiple | EmpfangenMultiple |
Optional können Sie das COutputQueue
Objekt so konfigurieren, dass Beispiele synchron ohne Arbeitsthread geliefert werden. Das Objekt kann auch zur Laufzeit entscheiden, ob ein Arbeitsthread basierend auf den Merkmalen der Eingabehefte verwendet werden soll. Weitere Informationen finden Sie unter COutputQueue::COutputQueue.
Geschützte Membervariablen | BESCHREIBUNG |
---|---|
m_pPin | Zeiger auf die IPin-Schnittstelle des Eingabehefts. |
m_pInputPin | Zeiger auf die IMemInputPin-Schnittstelle des Eingabehefts. |
m_bBatchExact | Flag, das angibt, ob das Objekt Beispiele in genauen Batches liefert. |
m_lBatchSize | Batchgröße. |
m_List | Medienbeispielwarteschlange. |
m_hSem | Behandeln Sie einen Semaphor, der vom Thread verwendet wird, um auf Beispiele zu warten. |
m_evFlushComplete | Ereignis, das signalisiert, wenn ein Spülvorgang abgeschlossen ist. |
m_hThread | Behandeln Sie den Arbeitsthread. |
m_ppSamples | Array von Beispielen der Größe COutputQueue::m_lBatchSize. |
m_nBatched | Anzahl der derzeit batchierten Beispiele und warten auf die Verarbeitung. |
m_lWaiting | Flag, das einen nichtzero-Wert aufweist, wenn der Thread auf ein Beispiel wartet. |
m_bFlushing | Kennzeichnen, das angibt, ob das Objekt einen Spülvorgang ausführt. |
m_bTerminate | Kennzeichnen, das angibt, ob der Thread beendet werden soll. |
m_bSendAnyway | Kennzeichnen, um die Batchverarbeitung außer Kraft zu setzen. |
m_hr | HRESULT-Wert , der angibt, ob das Objekt Beispiele 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 liefert sie an die Eingabehefte. |
IsQueued | Bestimmt, ob das Objekt einen Arbeitsthread zum Bereitstellen von Beispielen verwendet. |
QueueSample | Warteschlangen eines Medienbeispiels oder einer Steuerelementnachricht. |
IsSpecialSample | Bestimmt, ob Warteschlangendaten eine Steuerelementnachricht sind. |
FreeSamples | Alle ausstehenden Beispiele werden freigestellt. |
NotifyThread | Benachrichtigt den Thread, dass die Warteschlange Daten enthält. |
Öffentliche Methoden | BESCHREIBUNG |
COutputQueue | Konstruktormethode. |
~COutputQueue | Destructor-Methode. |
BeginFlush | Beginnt einen Spülvorgang. |
EndFlush | Beendet einen Spülvorgang. |
EOS | Stellt einen End-of-Stream-Aufruf an den Eingabeheften bereit. |
SendAnyway | Stellt alle ausstehenden Beispiele bereit. |
NewSegment | Stellt ein neues Segment an die Eingabehefte bereit. |
Erhalten | Stellt ein Medienbeispiel an die Eingabehefte bereit. |
EmpfangenMultiple | Stellt einen Batch von Medienbeispielen an die Eingabehefte bereit. |
Zurücksetzen | Setzt das Objekt zurück, damit mehr Daten empfangen werden können. |
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. |
Requirements (Anforderungen)
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|