Método CBaseRenderer.SourceThreadCanWait

El SourceThreadCanWait método contiene o libera el subproceso de streaming.

Sintaxis

virtual HRESULT SourceThreadCanWait(
   BOOL bCanWait
);

Parámetros

bCanWait

Valor booleano que indica si se debe contener el subproceso de streaming. Si es TRUE, el subproceso de streaming se bloquea mientras el filtro espera a representar los ejemplos siguientes. Si es FALSE, se libera el subproceso de streaming.

Valor devuelto

Devuelve S _ OK.

Observaciones

Llamar al método con el valor FALSE obliga al filtro a volver SourceThreadCanWait de una llamada IMemInputPin::Receive bloqueada. Cuando el filtro se está ejecutando, bloquea las llamadas receive hasta el tiempo de presentación del ejemplo actual. Cuando el filtro está en pausa, bloquea las llamadas receive indefinidamente. Este comportamiento regula el flujo de datos en la secuencia. Sin embargo, cuando el filtro se detiene o se vacía, no debe bloquearse.

El bloqueo se controla mediante el método CBaseRenderer::WaitForRenderTime, que espera dos eventos: CBaseRenderer::m _ RenderEvent y CBaseRenderer::m _ ThreadSignal. El evento m _ RenderEvent se señala cuando llega el tiempo de presentación. El evento _ m ThreadSignal se señala cuando SourceThreadCanWait se llama a con el valor FALSE. Al SourceThreadCanWait llamar a con el valor TRUE se restablece el evento.

Los métodos CBaseRenderer::Stop y CBaseRenderer::BeginFlush llaman con el valor SourceThreadCanWait FALSE (liberando el subproceso de streaming). Los métodos CBaseRenderer::P ause, CBaseRenderer::Runy CBaseRenderer::EndFlush llaman SourceThreadCanWait con el valor TRUE.

Requisitos

Requisito Value
Encabezado
Renbase.h (incluir Secuencias.h)
Biblioteca
Strmbase.lib (compilaciones comerciales);
Strmbasd.lib (compilaciones de depuración)

Consulte también

CBaseRenderer (clase)