Share via


Metodo CTransformInputPin.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 l'esempio multimediale successivo nel flusso. Questo metodo implementa il metodo IMemInputPin::Receive .

Sintassi

HRESULT Receive(
   IMediaSample *pSample
);

Parametri

pSample

Puntatore all'interfaccia IMediaSample dell'esempio.

Valore restituito

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

Codice restituito Descrizione
S_FALSE
Il pin è attualmente in fase di scaricamento; l'esempio è stato rifiutato.
S_OK
Operazione completata.

Commenti

Questo metodo chiama il metodo CBaseInputPin::Receive , che controlla lo stato di streaming del pin e controlla le modifiche del formato nel tipo di supporto. Chiama quindi il metodo CTransformFilter::Receive del filtro, che elabora l'esempio e lo distribuisce downstream.

Se il filtro deve accedere all'esempio dopo che questo metodo restituisce, deve contenere un conteggio dei riferimenti chiamando il metodo IUnknown::AddRef nell'esempio. Ad esempio, alcuni filtri decodificatori richiedono l'esempio corrente per decodificare l'esempio successivo.

Requisiti

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