Filtro Graph Manager
[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.
La compilazione e i controlli di Filter Graph Manager filtrano i grafici. Questo oggetto è il componente centrale in DirectShow. Le applicazioni lo usano per compilare e controllare i grafici dei filtri. Filter Graph Manager gestisce anche la sincronizzazione, la notifica degli eventi e altri aspetti del controllo del grafico del filtro. Creare questo oggetto chiamando CoCreateInstance.
CLSID
Esistono due CLSID per la creazione di Filter Graph Manager:
CLSID | Descrizione |
---|---|
CLSID_FilterGraph | Crea Filter Graph Manager in un thread di lavoro condiviso. |
CLSID_FilterGraphNoThread | Crea Filter Graph Manager nel thread dell'applicazione. |
In genere, le applicazioni devono usare CLSID_FilterGraph. Entrambi i CLSID creano lo stesso oggetto, ma usano modelli di threading diversi:
- CLSID_FilterGraph crea Filter Graph Manager in un thread di lavoro, condiviso da tutte le istanze di CLSID_FilterGraph all'interno dello stesso processo. Il thread invia messaggi inviati da filtri e controlla la durata di tutte le finestre create dai filtri.
- CLSID_FilterGraphNoThread crea Filter Graph Manager nel thread dell'applicazione. Se si usa questo CLSID, il thread che chiama CoCreateInstance deve avere un ciclo di messaggi che invia messaggi; in caso contrario, i deadlock possono verificarsi. Inoltre, prima dell'uscita del thread dell'applicazione, deve rilasciare Filter Graph Manager e tutti gli oggetti graph (ad esempio filtri, pin, orologi di riferimento e così via).
Interfacce
Filter Graph Manager espone le interfacce seguenti:
- IAMGraphStreams
- IAMStats
- IBasicAudio
- IBasicVideo
- IBasicVideo2
- IFilterChain
- IFilterGraph
- IFilterGraph2
- IFilterGraph3
- IFilterMapper2
- IGraphBuilder
- IGraphConfig
- IGraphVersion
- IMediaControl
- IMediaEvent
- IMediaEventEx
- IMediaEventSink
- IMediaFilter
- IMediaPosition
- IMediaSeeking
- IQueueCommand
- IRegisterServiceProvider
- IResourceManager
- IServiceProvider
- IVideoFrameStep
- IVideoWindow
Argomenti correlati