Metodo CBaseRenderer.SourceThreadCanWait
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Il SourceThreadCanWait
metodo contiene o rilascia il thread di streaming.
Sintassi
virtual HRESULT SourceThreadCanWait(
BOOL bCanWait
);
Parametri
-
bCanWait
-
Valore booleano che indica se contenere il thread di streaming. Se TRUE, il thread di streaming viene bloccato mentre il filtro attende il rendering degli esempi successivi. Se FALSE, il thread di streaming viene rilasciato.
Valore restituito
Restituisce S_OK.
Commenti
La chiamata al metodo con il SourceThreadCanWait
valore FALSE forza la restituzione del filtro da una chiamata IMemInputPin::Receive bloccata. Quando il filtro è in esecuzione, blocca le chiamate Receive fino all'ora di presentazione dell'esempio corrente. Quando il filtro viene sospeso, blocca le chiamate Receive per un periodo illimitato. Questo comportamento regola il flusso di dati nel flusso. Quando il filtro viene arrestato o scaricato, tuttavia, non deve bloccarsi.
Il blocco è controllato dal metodo CBaseRenderer::WaitForRenderTime , che attende due eventi: CBaseRenderer::m_RenderEvent e CBaseRenderer::m_ThreadSignal.
L'evento m_RenderEvent viene segnalato quando arriva l'ora di presentazione.
L'evento m_ThreadSignal viene segnalato quando SourceThreadCanWait
viene chiamato con il valore FALSE. La chiamata SourceThreadCanWait
con il valore TRUE reimposta l'evento.
I metodi CBaseRenderer::Stop e CBaseRenderer::BeginFlush chiamano SourceThreadCanWait
con il valore FALSE (rilasciando il thread di streaming). I metodi CBaseRenderer::P ause, CBaseRenderer::Run e CBaseRenderer::EndFlush chiamano SourceThreadCanWait
con il valore TRUE.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|