Condividi tramite


Informazioni su Filter Graph Manager

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

Filter Graph Manager è un oggetto COM che controlla i filtri in un grafico di filtro. Esegue molte funzioni, tra cui le seguenti:

  • Coordinamento delle modifiche dello stato tra i filtri.
  • Definizione di un orologio di riferimento.
  • Comunicare gli eventi all'applicazione.
  • Fornire metodi per le applicazioni per compilare il grafico dei filtri.

Ognuna di queste funzioni viene descritta brevemente qui. I dettagli sono disponibili altrove nella documentazione.

Modifiche dello stato. Le modifiche dello stato all'interno dei filtri devono verificarsi in un ordine specifico. Di conseguenza, l'applicazione non esegue comandi di modifica dello stato direttamente ai filtri. Assegna invece un singolo comando a Filter Graph Manager, che distribuisce il comando a ognuno dei filtri. La ricerca funziona in modo simile: l'applicazione fornisce un comando seek a Filter Graph Manager, che lo distribuisce ai filtri.

Orologio di riferimento. Tutti i filtri nel grafico usano lo stesso orologio, denominato orologio di riferimento. L'orologio di riferimento garantisce che tutti i flussi siano sincronizzati. L'ora in cui deve essere eseguito il rendering di un fotogramma video o un campione audio viene chiamata ora di presentazione. L'ora della presentazione viene misurata rispetto all'orologio di riferimento. Filter Graph Manager sceglie un orologio di riferimento, in genere l'orologio sulla scheda audio o l'orologio di sistema.

Eventi del grafo. Filter Graph Manager usa una coda di eventi per informare l'applicazione di eventi che si verificano nel grafico dei filtri. Questo meccanismo è simile a un ciclo di messaggi di Windows.

Metodi di creazione di gragrafi. Filter Graph Manager fornisce metodi per l'applicazione per aggiungere filtri al grafico, connettere i filtri ad altri filtri e disconnettere i filtri.

Una funzione che Filter Graph Manager non gestisce è lo spostamento dei dati da un filtro all'altro. Questa operazione viene eseguita dai filtri stessi, tramite le connessioni pin. L'elaborazione avviene sempre su un thread separato.

Nota

I filtri sono sempre a thread libero, risiedono nello stesso processo di Filter Graph Manager e vengono caricati dai server in-process. Di conseguenza, le chiamate al metodo non vengono sottoposto a marshalling tra filtri o tra filtri e Filter Graph Manager.

 

Flusso di dati nel grafico dei filtri

Notifica degli eventi in DirectShow

Impostazione dell'orologio grafico

Ora e orologi in DirectShow