Gestionnaire de graphe de filtre

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La 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 graphiques de filtre génère et contrôle les 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 graphe de filtre gère également la synchronisation, la notification d’événements et d’autres aspects du contrôle du graphe de filtre. Créez cet objet en appelant CoCreateInstance.

CLSID

Il existe deux CLSID pour créer le Gestionnaire de graphes de filtre :

CLSID Description
CLSID_FilterGraph Crée le Gestionnaire de graphe 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 ils utilisent des modèles de threads différents :

  • CLSID_FilterGraph crée le Gestionnaire de graphe 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 les filtres et contrôle la durée de vie de toutes les fenêtres créées par les filtres.
  • CLSID_FilterGraphNoThread crée le Gestionnaire de graphe 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 distribue les messages ; sinon, des interblocages peuvent se produire. En outre, avant que le thread d’application ne quitte, il doit libérer le Gestionnaire de graphes de filtre et tous les objets graphiques (tels que les filtres, les épingles, les horloges de référence, etc.).

Interfaces

Le Gestionnaire de graphes de filtre expose les interfaces suivantes :

Objets DirectShow