Metodo CTransformFilter.Receive

[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 Receive metodo riceve un esempio multimediale, lo elabora e fornisce un esempio di output al filtro downstream.

Sintassi

HRESULT Receive(
   IMediaSample *pSample
);

Parametri

pSample

Puntatore all'interfaccia IMediaSample nell'esempio di input.

Valore restituito

Restituisce un valore HRESULT . I possibili valori sono i seguenti:

Codice restituito Descrizione
S_FALSE
Il filtro upstream deve interrompere l'invio di esempi.
S_OK
Operazione completata.

Commenti

Il pin di input del filtro chiama questo metodo quando riceve un esempio. Questo metodo chiama il metodo CTransformFilter::InitializeOutputSample , che prepara un nuovo esempio di output. Chiama quindi il metodo CTransformFilter::Transform , che la classe derivata deve implementare. Il metodo Transform elabora i dati di input e produce dati di output.

Se il metodo Transform restituisce S_FALSE, il metodo elimina questo Receive esempio. Nel primo esempio eliminato, il filtro invia un evento EC_QUALITY_CHANGE alla gestione dei grafici di filtro. In caso contrario, se il metodo Transform restituisce S_OK, il filtro restituisce l'esempio di output. A tale scopo, chiama il metodo IMemInputPin::Receive nel pin di input downstream.

Requisiti

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

Vedi anche

Classe CTransformFilter