Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[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