Graph-Manager filtern
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Der Filter graph-Manager erstellt und steuert Filtergraphen. Dieses Objekt ist die zentrale Komponente in DirectShow. Anwendungen verwenden sie zum Erstellen und Steuern von Filterdiagrammen. Der Filter graph-Manager behandelt auch die Synchronisierung, Ereignisbenachrichtigung und andere Aspekte des Steuerns des Filtergraphen. Erstellen Sie dieses Objekt, indem Sie CoCreateInstance aufrufen.
CLSID
Es gibt zwei CLSIDs zum Erstellen des Filtergraph-Managers:
CLSID | BESCHREIBUNG |
---|---|
CLSID_FilterGraph | Erstellt den Filter Graph-Manager in einem freigegebenen Workerthread. |
CLSID_FilterGraphNoThread | Erstellt den Filter Graph-Manager im Anwendungsthread. |
Im Allgemeinen sollten Anwendungen CLSID_FilterGraph verwenden. Beide CLSIDs erstellen dasselbe Objekt, verwenden jedoch unterschiedliche Threadingmodelle:
- CLSID_FilterGraph erstellt den Filter Graph-Manager in einem Workerthread, der von allen CLSID_FilterGraph Instanzen innerhalb desselben Prozesses gemeinsam genutzt wird. Der Thread sendet von Filtern gesendete Nachrichten und steuert die Lebensdauer aller Fenster, 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 versendet. Andernfalls können Deadlocks auftreten. Außerdem müssen der Filtergraph-Manager und alle Graphobjekte (z. B. Filter, Pins, Verweisuhren usw.) vor dem Beenden des Anwendungsthreads freigegeben 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
Zugehörige Themen