À propos des topologies

Une topologie est un objet qui représente le flux des données dans le pipeline. Une application crée une topologie pour décrire le chemin que chaque flux prend de la source multimédia vers un récepteur multimédia. L’application transmet la topologie à la session multimédia, et la session multimédia utilise la topologie pour contrôler le flux de données.

Les composants de traitement des données dans le pipeline (sources multimédias, transformations et récepteurs multimédias) sont représentés dans la topologie en tant que nœuds. Le flux de données d’un composant à un autre est représenté par une connexion entre les nœuds. Les types de nœuds suivants sont définis :

  • Nœud source : représente un flux multimédia sur une source multimédia.
  • Nœud de transformation : représente une transformation Media Foundation (MFT).
  • Nœud de sortie : représente un récepteur de flux sur un récepteur de média.
  • Nœud tee : représente une duplication dans le flux. Les nœuds tee sont une exception à la règle selon laquelle un nœud représente un objet de pipeline. Contrairement à d’autres types de nœuds, le nœud de départ dirige simplement le flux de données.

Une topologie fonctionnelle doit contenir au moins un nœud source connecté à un nœud de sortie, éventuellement via un ou plusieurs nœuds de transformation. Par exemple, le diagramme suivant montre une topologie simple avec un flux.

diagramme montrant une topologie avec un flux.

Pour la lecture de fichiers, le nœud de transformation peut représenter un décodeur et le nœud de sortie représente le convertisseur audio ou vidéo. Pour l’encodage de fichier, le nœud de transformation représente un encodeur et le nœud de sortie représente un récepteur d’archive, tel que le récepteur de fichiers ASF.

Si deux nœuds sont connectés, le nœud qui produit des données est appelé nœud amont et le nœud qui reçoit des données est appelé nœud en aval. Par exemple, dans le diagramme précédent, le nœud source est amont à partir du nœud de transformation.

Dans une paire de nœuds connectés, le point de connexion sur le nœud amont est appelé une sortie. Le point de connexion sur le nœud en aval est appelé entrée. Le diagramme suivant montre une paire de nœuds avec leurs points de connexion et le flux de données entre eux. Les points de connexion ne sont pas représentés en tant qu’objets distincts dans la topologie. Ils sont spécifiés par la valeur d’index sur l’objet node.

diagramme montrant deux nœuds connectés.

Un nœud source ne peut pas avoir d’entrées. Par conséquent, il ne peut pas y avoir de nœuds amont à partir d’un nœud source. De même, un nœud de sortie ne peut pas avoir de sorties et il ne peut pas y avoir de nœuds en aval d’un nœud de sortie. Une chaîne de nœuds d’un nœud source à un nœud de sortie est appelée branche de la topologie. Le premier diagramme de cette rubrique montre une topologie avec une seule branche. En général, il y a une branche par flux. La lecture d’un fichier avec un flux audio et un flux vidéo, par exemple, nécessite une topologie avec deux branches.

Topologies partielles

Une topologie complète ou complète contient un nœud pour chaque objet de pipeline nécessaire. Toutefois, l’application n’a pas toujours besoin de créer une topologie complète. Au lieu de cela, elle crée une topologie partielle qui omet un ou plusieurs nœuds de transformation.

La session multimédia termine la topologie à l’aide d’un objet appelé chargeur de topologie. Le chargeur de topologie convertit les topologies partielles en topologies complètes en insérant les transformations nécessaires. Le processus de conversion est appelé résolution de la topologie.

Par exemple, pour lire un flux audio encodé, la topologie doit avoir un décodeur entre les nœuds source et de sortie. L’application crée une topologie partielle qui connecte le nœud source directement au nœud de sortie, sans le décodeur. Le chargeur de topologie examine les formats de flux, trouve le décodeur approprié et insère un nœud de transformation dans la topologie.

Le diagramme suivant montre la topologie partielle créée par l’application.

diagramme montrant une partie avec un nœud source et un nœud de sortie.

Le diagramme suivant montre la topologie complète une fois que le chargeur de topologie l’a résolue. Dans cet exemple, le chargeur de topologie a inséré un nœud de transformation pour le décodeur.

diagramme montrant une topologie complète.

Dans la version actuelle de Media Foundation, le chargeur de topologie prend en charge les topologies pour la lecture. Pour l’encodage de fichiers et d’autres scénarios, l’application doit construire une topologie complète.

Les applications peuvent également créer le chargeur de topologie et l’utiliser directement. Par exemple, vous pouvez utiliser le chargeur de topologie pour résoudre une topologie partielle, puis modifier la topologie complète avant de la donner à la session multimédia. Pour créer le chargeur de topologie, appelez MFCreateTopoLoader.

Topologies