Metodo CBaseRenderer.PrepareReceive

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine 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, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il PrepareReceive metodo prepara il filtro per eseguire il rendering di un esempio.

Sintassi

virtual HRESULT PrepareReceive(
   IMediaSample *pMediaSample
);

Parametri

pMediaSample

Puntatore all'interfaccia IMediaSample dell'esempio.

Valore restituito

Restituisce un valore HRESULT . I valori possibili includono quelli nella tabella seguente.

Codice restituito Descrizione
S_OK
Operazione completata.
E_FAIL
non riuscito.
E_UNEXPECTED
Errore imprevisto.
VFW_E_SAMPLE_REJECTED
Il filtro elimina questo esempio.

Commenti

Il filtro chiama questo metodo dall'interno del metodo CBaseRenderer::Receive , prima di eseguire il rendering di un esempio. Se il filtro è in esecuzione, questo metodo pianifica l'esempio per il rendering.

Se il filtro ha già un esempio in sospeso o se il flusso finale è già stato raggiunto, il metodo restituisce E_UNEXPECTED. Probabilmente il filtro upstream non serializza correttamente le chiamate di streaming.

Se l'algoritmo di pianificazione determina che l'esempio deve essere eliminato (vedere CBaseRenderer::ScheduleSample), il metodo restituisce VFW_E_SAMPLE_REJECTED. Tuttavia, il metodo IMemInputPin::Receive non passa questo codice di errore al filtro upstream, perché l'eliminazione di un esempio non è un errore.

Requisiti

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

Vedi anche

Classe CBaseRenderer