à propos du gestionnaire de Graph de filtre

le gestionnaire de Graph de filtre est un objet COM qui contrôle les filtres dans un graphique de filtre. Il effectue de nombreuses fonctions, y compris les suivantes :

  • Coordination des changements d’état parmi les filtres.
  • Établissement d’une horloge de référence.
  • Communication des événements à l’application.
  • Fournir des méthodes pour que les applications génèrent le graphique de filtre.

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

Modifications 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 modification d’État directement aux filtres. au lieu de cela, il fournit une commande unique au gestionnaire de Graph de filtre, qui distribue la commande à chacun des filtres. la recherche fonctionne de la même manière : l’application fournit une commande seek au gestionnaire de Graph de filtre, qui le 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 un échantillon vidéo ou audio doit être rendu est l’heure de la Présentation. L’heure de la présentation est mesurée par rapport à l’horloge de référence. le gestionnaire de Graph de filtre choisit une horloge de référence, généralement l’horloge de la carte son ou l’horloge système.

événements de Graph. le gestionnaire de Graph de filtre utilise une file d’attente d’événements pour informer l’application des événements qui se produisent dans le graphique de filtre. ce mécanisme est similaire à une boucle de messages Windows.

méthodes de création de Graph. le gestionnaire de Graph de filtre fournit des méthodes pour que l’application ajoute des filtres au graphique, connecte des filtres à d’autres filtres et déconnecte les filtres.

une fonction que le gestionnaire de Graph de filtre ne gère pas consiste à déplacer les données d’un filtre à l’autre. Cela est effectué par les filtres eux-mêmes, par le biais de leurs connexions de code confidentiel. Le traitement se produit toujours sur un thread séparé.

Notes

les filtres sont toujours à thread libre, résident dans le même processus que le gestionnaire de Graph de filtre et sont chargés à partir des serveurs in-process. par conséquent, les appels de méthode ne sont pas marshalés entre les filtres, ni entre les filtres et le gestionnaire de Graph de filtre.

données Flow dans le filtre Graph

Notification d’événements dans DirectShow

définition de l’horloge de Graph

Temps et horloges dans DirectShow