Graph-Manager filtern
[Das dieser Seite zugeordnete Feature DirectShow-ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngineund Audio/Video Capture in Media Foundationersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code MediaPlayer-, IMFMediaEngine und Audio-/Videoaufnahme in Media Foundation anstelle von DirectShow-verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]
Der Filter Graph-Manager erstellt und steuert Filterdiagramme. Dieses Objekt ist die zentrale Komponente in DirectShow. Anwendungen verwenden sie zum Erstellen und Steuern von Filterdiagrammen. Der Filter Graph-Manager behandelt auch Synchronisierung, Ereignisbenachrichtigung und andere Aspekte der Steuerung des Filterdiagramms. Erstellen Sie dieses Objekt, indem Sie CoCreateInstance-aufrufen.
CLSID
Es gibt zwei CLSIDs zum Erstellen des Filterdiagramm-Managers:
CLSID | Beschreibung |
---|---|
CLSID_FilterGraph | Erstellt den Filter graph-Manager in einem freigegebenen Arbeitsthread. |
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 Arbeitsthread, der von allen CLSID_FilterGraph Instanzen innerhalb desselben Prozesses freigegeben wird. Der Thread sendet Nachrichten, die von Filtern gesendet werden, und steuert die Lebensdauer aller Fenster, die durch Filter erstellt wurden.
- CLSID_FilterGraphNoThread erstellt den Filter Graph-Manager im Thread der Anwendung. 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 Diagrammobjekte (z. B. Filter, Pins, Referenzuhren usw.) 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-
Verwandte Themen