Metodo CBaseRenderer.Receive

Il Receive metodo riceve l'esempio multimediale successivo nel flusso.

Sintassi

virtual Receive(
   IMediaSample *pMediaSample
);

Parametri

pMediaSample

Puntatore all'interfaccia IMediaSample dell'esempio.

Valore restituito

Restituisce S_OK se ha esito positivo o un valore HRESULT che indica la causa dell'errore.

Commenti

Il pin di input chiama questo metodo quando riceve un esempio dal filtro upstream.

Se il filtro è in esecuzione, questo metodo esegue la procedura seguente:

  1. Pianifica l'esempio per il rendering (CBaseRenderer::P repareReceive).
  2. Attende l'ora pianificata (CBaseRenderer::WaitForRenderTime).
  3. Esegue il rendering dell'esempio (CBaseRenderer::Rendering).
  4. Rilascia l'esempio (CBaseRenderer::ClearPendingSample).

Se il filtro viene sospeso, il metodo esegue la procedura seguente:

  1. Notifica alla classe derivata che è disponibile un esempio (CBaseRenderer::OnReceiveFirstSample).
  2. Attende l'ora pianificata.
  3. Esegue il rendering dell'esempio.
  4. Rilascia l'esempio.

Durante la pausa, il metodo attende nel passaggio 2 fino a quando il filtro passa a uno stato in esecuzione. A quel punto, il filtro pianifica l'esempio.

Nella classe base il metodo OnReceiveFirstSample non esegue nulla. La classe derivata può eseguirne l'override. Ad esempio, quando viene sospeso un renderer video, viene visualizzato il primo esempio come immagine ancora.

Requisiti

Requisito Valore
Intestazione
Renbase.h (includere Flussi.h)
Libreria
Strmbase.lib (build al dettaglio);
Strmbasd.lib (build di debug)

Vedi anche

Classe CBaseRenderer