Filtrer Graph Manager

Filtre Graph Manager 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 filtre Graph gère également la synchronisation, la notification des événements et d’autres aspects du contrôle du graphique de filtre. Créez cet objet en appelant CoCreateInstance.

CLSID

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

CLSID Description
CLSID_FilterGraph Crée le Gestionnaire de filtre Graph sur un thread de travail partagé.
CLSID_FilterGraphNoThread Crée le Gestionnaire de filtre Graph 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 différents modèles de thread :

  • CLSID_FilterGraph crée le Gestionnaire de filtre Graph 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 des filtres.
  • CLSID_FilterGraphNoThread crée le Gestionnaire de filtre Graph 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, les blocages peuvent se produire. En outre, avant que le thread d’application ne quitte, il doit libérer le Gestionnaire de filtres Graph et tous les objets graphiques (tels que les filtres, les broches, les horloges de référence, etc.).

Interfaces

Le Gestionnaire de filtre Graph expose les interfaces suivantes :

objets DirectShow