Partager via


À propos du 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 graphes de filtre est un objet COM qui contrôle les filtres dans un graphe de filtre. Il exécute de nombreuses fonctions, notamment les suivantes :

  • Coordination des changements d’état entre les filtres.
  • Établissement d’une horloge de référence.
  • Communication des événements à l’application.
  • Fourniture de méthodes permettant aux applications de générer le graphe de filtre.

Chacune de ces fonctions est brièvement décrite ici. Vous trouverez des détails ailleurs dans la documentation.

Changements d’état. Les changements d’état dans les filtres doivent se produire dans un ordre particulier. Par conséquent, l’application n’émet pas de commandes de changement d’état directement dans les filtres. Au lieu de cela, il donne une seule commande au Gestionnaire de graphe de filtre, qui distribue la commande à chacun des filtres. La recherche fonctionne de la même manière : l’application donne une commande seek au Gestionnaire de graphes de filtre, qui la distribue aux filtres.

Horloge de référence. Tous les filtres du graphique utilisent la même horloge, appelée horloge de référence. L’horloge de référence garantit que tous les flux sont synchronisés. L’heure à laquelle une image vidéo ou un exemple audio doit être rendu est appelée heure de présentation. Le temps de présentation est mesuré par rapport à l’horloge de référence. Le Gestionnaire de graphes de filtre choisit une horloge de référence, généralement l’horloge sur le carte sonore, ou l’horloge système.

Événements graphiques. Le Gestionnaire de graphe de filtre utilise une file d’attente d’événements pour informer l’application des événements qui se produisent dans le graphe de filtre. Ce mécanisme est similaire à une boucle de message Windows.

Méthodes de création de graphiques. Le Gestionnaire de graphes de filtre fournit des méthodes permettant à l’application d’ajouter des filtres au graphe, de connecter des filtres à d’autres filtres et de déconnecter les filtres.

L’une des fonctions que le Gestionnaire de graphes de filtre ne gère pas consiste à déplacer des données d’un filtre à l’autre. Cela est effectué par les filtres eux-mêmes, via leurs connexions de broche. Le traitement se produit toujours sur un thread distinct.

Notes

Les filtres sont toujours en thread libre, résident dans le même processus que le Gestionnaire de graphes de filtre et sont chargés à partir de serveurs en cours de processus. Par conséquent, les appels de méthode ne sont pas marshalés entre les filtres ou entre les filtres et le Gestionnaire de graphes de filtres.

 

Data Flow dans le graphe de filtre

Notification d’événement dans DirectShow

Définition de l’horloge graphe

Heure et horloges dans DirectShow