Esempio di filtro InfTee

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

Descrizione

Il filtro InfTee fornisce un'implementazione di esempio del filtro DirectShow Infinite Pin Tee . Il filtro ha un pin di input e un numero dinamico di pin di output. Tutti gli esempi multimediali inviati al filtro vengono recapitati simultaneamente da tutti i pin di output.

Questo filtro viene visualizzato in GraphEdit sotto il nome "Sample Infinite Pin Tee", per distinguerlo dal filtro Infinite Pin Tee standard fornito in DirectShow.

Utilizzo

Poiché questo filtro non modifica i dati ricevuti, tutti i pin devono accettare lo stesso tipo di supporto. Durante il processo di connessione, il filtro potrebbe riconnettere alcuni pin per rendere corrispondenti i tipi di supporti.

I dati che arrivano al pin di input non vengono copiati prima che vengano inviati ai pin di output. Il filtro garantisce inoltre che i dati vengano recapitati ai filtri downstream, per garantire che entrambi gli output ricevano un servizio tempestivo. In particolare, se uno degli output può bloccarsi nella funzione membro COutputQueue::Receive , l'elemento tee spinse un thread per recapitare l'esempio. Se non c'era alcun thread per recapitare l'esempio, il thread che recapita l'esempio al pin di input del tee potrebbe passare i dati a un filtro downstream; a questo punto, potrebbe bloccare, mantenendo i dati dall'altro filtro downstream per lunghi periodi di tempo.

Download dell'esempio

Per scaricare gli esempi di DirectShow SDK, installare la versione più recente di Windows SDK.

Questo esempio viene installato nel percorso seguente: [SDK Root]\Samples\Multimedia\DirectShow\Filters\InfTee.

Esempi di DirectShow