CBaseRenderer.SourceThreadCanWait-Methode

Die SourceThreadCanWait -Methode enthält den Streamingthread oder gibt den Streamingthread frei.

Syntax

virtual HRESULT SourceThreadCanWait(
   BOOL bCanWait
);

Parameter

bCanWait

Boolescher Wert, der angibt, ob der Streamingthread enthalten sein soll. True gibt an, dass der Streamingthread blockiert wird, während der Filter auf das Rendern der nächsten Beispiele wartet. False gibt an, dass der Streamingthread freigegeben wird.

Rückgabewert

Gibt S _ OK zurück.

Hinweise

Wenn Sie die SourceThreadCanWait -Methode mit dem Wert FALSE aufrufen, wird der Filter gezwungen, von einem blockierten IMemInputPin::Receive-Aufruf zurückzugeben. Wenn der Filter ausgeführt wird, blockiert er Receive-Aufrufe bis zur Präsentationszeit des aktuellen Beispiels. Wenn der Filter angehalten wird, blockiert er Receive-Aufrufe unbegrenzt. Dieses Verhalten reguliert den Datenfluss im Datenstrom. Wenn der Filter beendet oder geleert wird, sollte er jedoch nicht blockiert werden.

Die Blockierung wird von der CBaseRenderer::WaitForRenderTime-Methode gesteuert, die auf zwei Ereignisse wartet: CBaseRenderer::m _ RenderEvent und CBaseRenderer::m _ ThreadSignal. Das m _ RenderEvent-Ereignis wird signalisiert, wenn die Präsentationszeit eingeht. Das m _ ThreadSignal-Ereignis wird signalisiert, wenn SourceThreadCanWait mit dem Wert FALSE aufgerufen wird. Wenn SourceThreadCanWait Sie mit dem Wert TRUE aufrufen, wird das Ereignis zurückgesetzt.

Die Methoden CBaseRenderer::Stop und CBaseRenderer::BeginFlush rufen SourceThreadCanWait mit dem Wert FALSE auf (Freigabe des Streamingthreads). Die Methoden CBaseRenderer::P ause, CBaseRenderer::Runund CBaseRenderer::EndFlush rufen SourceThreadCanWait mit dem Wert TRUE auf.

Anforderungen

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

Siehe auch

CBaseRenderer-Klasse