Metodo CVideoTransformFilter.Receive
[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 Receive
metodo riceve un campione multimediale, lo elabora e distribuisce un esempio di output al filtro downstream. Questo metodo esegue l'override del metodo CTransformFilter::Receive .
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 |
---|---|
|
Il filtro upstream deve interrompere l'invio di campioni. |
|
Operazione completata. |
Commenti
Questo metodo chiama CVideoTransformFilter::ShouldSkipFrame per determinare se deve recapitare questo esempio o semplicemente eliminarlo. Se ShouldSkipFrame restituisce FALSE (che indica che l'esempio deve essere recapitato), il metodo esegue le operazioni seguenti:
- Chiama CTransformFilter::InitializeOutputSample per preparare l'esempio di output
- Chiama CTransformFilter::Transform per elaborare l'esempio di input. Questo metodo è virtuale puro e deve essere implementato nella classe derivata.
- Chiama CBaseOutputPin::D eliver per recapitare l'esempio di output.
Inoltre, questo metodo verifica la presenza di modifiche al formato nell'esempio di input o output chiamando IMediaSample::GetMediaType. In caso di modifica del formato, il metodo imposta il tipo di connessione sul pin corrispondente. Prima di impostare il nuovo tipo, chiama StopStreaming. Dopo aver impostato il nuovo tipo, chiama StartStreaming. La classe derivata può usare questi metodi per aggiornare lo stato interno. La classe derivata potrebbe anche dover verificare la presenza del nuovo formato nel metodo Transform .
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|