Partager via


Filtrer le Gestionnaire de graphes

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngineet audio/vidéo capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et capture audio/vidéo dans Media Foundation au lieu de directShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Le Gestionnaire de graphes de filtre génère et contrôle des graphiques de filtre. Cet objet est le composant central dans DirectShow. Les applications l’utilisent pour générer et contrôler des graphiques de filtre. Le Gestionnaire de graphiques de filtre gère également la synchronisation, la notification d’événement et d’autres aspects du contrôle du graphique de filtre. Créez cet objet en appelant CoCreateInstance .

CLSID

Il existe deux CLSID pour la création du Gestionnaire de graphes de filtre :

CLSID Description
CLSID_FilterGraph Crée le Gestionnaire de graphes de filtre sur un thread de travail partagé.
CLSID_FilterGraphNoThread Crée le Gestionnaire de graphes de filtre sur le thread d’application.

 

En règle générale, les applications doivent utiliser CLSID_FilterGraph. Les deux CLSID créent le même objet, mais utilisent différents modèles de thread :

  • CLSID_FilterGraph crée le Gestionnaire de graphes de filtre sur un thread de travail, qui est partagé par toutes les instances CLSID_FilterGraph au sein du même processus. Le thread répartit les messages envoyés par des filtres et contrôle la durée de vie des fenêtres créées par des filtres.
  • CLSID_FilterGraphNoThread crée le Gestionnaire de graphes de filtre sur le thread de l’application. Si vous utilisez ce CLSID, le thread qui appelle CoCreateInstance doit avoir une boucle de message qui répartit les messages ; sinon, des interblocages peuvent se produire. En outre, avant la sortie du thread d’application, elle doit libérer le Gestionnaire de graphes de filtre et tous les objets de graphe (tels que les filtres, les broches, les horloges de référence, etc.).

Interfaces

Le Gestionnaire de graphes de filtre expose les interfaces suivantes :

  • 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

objets DirectShow