Filtern Graph-Managers
Filter Graph Manager erstellt und steuert Filterdiagramme. Dieses Objekt ist die zentrale Komponente in DirectShow. Anwendungen verwenden es zum Erstellen und Steuern von Filterdiagrammen. Der Filter Graph Manager verarbeitet auch die Synchronisierung, Ereignisbenachrichtigungen und andere Aspekte der Steuerung des Filterdiagramms. Erstellen Sie dieses Objekt, indem Sie CoCreateInstance aufrufen.
CLSID
Es gibt zwei CLSIDs zum Erstellen des Filter-Graph-Managers:
| CLSID | BESCHREIBUNG |
|---|---|
| CLSID _ FilterGraph | Erstellt den Filter Graph Manager für einen freigegebenen Arbeitsthread. |
| _CLSID-FilterGraphNoThread | Erstellt den Filter Graph Manager im Anwendungsthread. |
Im Allgemeinen sollten Anwendungen CLSID _ FilterGraph verwenden. Beide CLSIDs erstellen das gleiche Objekt, verwenden aber unterschiedliche Threadingmodelle:
- CLSID _ FilterGraph erstellt den Filter Graph Manager in einem Arbeitsthread, der von allen CLSID _ FilterGraph-Instanzen innerhalb desselben Prozesses gemeinsam genutzt wird. Der Thread sendet Nachrichten, die von Filtern gesendet werden, und steuert die Lebensdauer von Fenstern, die von Filtern erstellt werden.
- CLSID _ FilterGraphNoThread erstellt den Filter Graph Manager im Anwendungsthread. Wenn Sie diese CLSID verwenden, muss der Thread, der CoCreateInstance aufruft, über eine Nachrichtenschleife verfügen, die Nachrichten verteilt. Andernfalls können Deadlocks auftreten. Außerdem muss vor dem Beenden des Anwendungsthreads der Filter Graph Manager und alle Graphobjekte (z. B. Filter, Stecknadeln, Referenzuhren usw.) veröffentlicht werden.
Schnittstellen
Der Filter Graph Manager macht die folgenden Schnittstellen verfügbar:
- 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