Condividi tramite


Metodo IPinConnection::NotifyEndOfStream (strmif.h)

[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 NotifyEndOfStream metodo richiede la notifica dal pin quando si verifica la condizione end-of-stream successiva.

Sintassi

HRESULT NotifyEndOfStream(
  [in] HANDLE hNotifyEvent
);

Parametri

[in] hNotifyEvent

Gestire in un oggetto evento che il pin segnalerà.

Valore restituito

Restituisce un valore HRESULT . Di seguito sono indicati alcuni valori possibili.

Codice restituito Descrizione
S_FALSE
L'handle eventi era NULL, ma non c'era alcun handle di eventi esistente per reimpostare.
S_OK
L'handle eventi è stato impostato. Se l'handle eventi era NULL, la notifica degli eventi è stata annullata.

Commenti

Questo metodo consente al chiamante di eseguire il push dei dati attraverso una parte del grafico del filtro che termina con questo pin.

Si supponga, ad esempio, che il chiamante stia eseguendo il push dei dati da un pin di output denominato "A" su un filtro, a un pin di input denominato "B" in un altro filtro, possibilmente con filtri intermedi che li connettono. La sequenza di eventi seguente verrà eseguita.

  1. Il chiamante blocca il flusso di dati al pin A.
  2. NotifyEndOfStream Chiama il pin B.
  3. Chiama IPin::EndOfStream nel pin di input connesso al pin A.
  4. Poiché i dati rimanenti viaggiano verso il basso attraverso qualsiasi filtro intermedio, questi filtri propagano la notifica end-of-stream.
  5. Quando pin B riceve la notifica end-of-stream, segnala l'evento specificato nel parametro hNotifyEvent . A quel punto, il chiamante può riconfigurare in modo sicuro il grafico tra pin A e pin B.
Poiché lo scopo di questo metodo è consentire al chiamante di ricompilare il grafico in modo dinamico e quindi riavviare la connessione, la notifica end-of-stream non rappresenta la fine effettiva del flusso. Pertanto, il pin B non propaga la condizione end-of-stream o segnale EC_COMPLETE. Si tratta di un'eccezione alle normali regole per il flusso di dati nel grafico del filtro.

È responsabilità del chiamante annullare la notifica chiamando di nuovo questo metodo con un handle evento NULL .

Il grafico del filtro chiama questo metodo all'interno del metodo IGraphConfig::Reconnect . Se un'applicazione o un filtro esegue una riconfigurazione dinamica specializzata nel grafico (usando il metodo IGraphConfig::Reconfigure ), può chiamare prima questo metodo per eseguire il push dei dati attraverso la parte del grafico che viene riconfigurato.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione strmif.h (include Dshow.h)
Libreria Strmiids.lib

Vedi anche

Riconnessione dinamica

Codici errore e esito positivo

Interfaccia IPinConnection