Metodo CBaseRenderer.SendEndOfStream

[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.

Se è stata raggiunta la fine del flusso, il SendEndOfStream metodo pianifica un evento EC_COMPLETE per la gestione del grafo dei filtri.

Sintassi

virtual HRESULT SendEndOfStream();

Parametri

Questo metodo non presenta parametri.

Valore restituito

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

Codice restituito Descrizione
S_FALSE
Gestione grafici di filtro non accetta le notifiche degli eventi.
S_OK
Operazione completata.

Commenti

Il filtro potrebbe ricevere una notifica di fine flusso prima dell'ora di arresto dell'esempio corrente. In tal caso, il filtro deve attendere prima di pubblicare una notifica di EC_COMPLETE al gestore del grafo dei filtri.

Di conseguenza:

  • Se il filtro ha ricevuto una notifica di fine flusso anticipata (EOS), questo metodo pianifica un evento timer. Quando l'evento timer viene attivato, il filtro invia l'evento EC_COMPLETE.
  • Se il filtro ha ricevuto una notifica EOS non anticipata, questo metodo invia immediatamente l'evento EC_COMPLETE.
  • Se il filtro non dispone di alcuna notifica EOS in sospeso, il metodo restituisce senza eseguire alcuna operazione.

Il metodo di callback timer è CBaseRenderer::TimerCallback. Per recapitare l'evento EC_COMPLETE, il filtro chiama il metodo CBaseRenderer::NotifyEndOfStream .

Requisiti

Requisito Valore
Intestazione
Renbase.h (include Streams.h)
Libreria
Strmbase.lib (build retail);
Strmbasd.lib (build di debug)

Vedi anche

Classe CBaseRenderer