Compartir a través de


Método CBaseRenderer.SourceThreadCanWait

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

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 va a 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.

Comentarios

Llamar al SourceThreadCanWait método con el valor FALSE obliga al filtro a devolver desde una llamada A IMemInputPin::Receive bloqueada. Cuando se ejecuta el filtro, bloquea las llamadas receive hasta la hora 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 vacía, no debe bloquearse.

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

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

Requisitos

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

Consulte también

CBaseRenderer (clase)