Exemple de filtre InfTee

[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.]

Description

Le filtre InfTee fournit un exemple d’implémentation du filtre Tee de pin infini DirectShow. Le filtre a une broche d’entrée et un nombre dynamique de broches de sortie. Tous les exemples multimédias envoyés au filtre sont fournis simultanément à partir de toutes les broches de sortie.

Ce filtre apparaît dans GraphEdit sous le nom « Sample Infinite Pin Tee » pour le distinguer du filtre Pin Tee infini standard fourni dans DirectShow.

Utilisation

Étant donné que ce filtre ne modifie pas les données qu’il reçoit, toutes les broches doivent accepter le même type de média. Pendant le processus de connexion, le filtre peut reconnecter certaines broches afin que les types de médias correspondent.

Les données arrivant à la broche d’entrée ne sont pas copiées avant d’être envoyées aux broches de sortie. Le filtre garantit également que les données sont livrées aux filtres en aval, afin de garantir que les deux sorties reçoivent un service en temps opportun. En particulier, si l’une des sorties peut se bloquer dans la fonction membre COutputQueue::Receive , le tee fait tourner un thread pour remettre l’exemple. S’il n’y avait pas de thread pour remettre l’exemple, le thread qui remet l’exemple à la broche d’entrée de tee peut passer les données à un filtre en aval ; à ce stade, il peut bloquer, en conservant les données de l’autre filtre en aval pendant de longues périodes.

Téléchargement de l’exemple

Pour télécharger les exemples du Kit de développement logiciel (SDK) DirectShow, installez la dernière version du Kit de développement logiciel (SDK) Windows.

Cet exemple est installé sous le chemin suivant : [Racine du SDK]\Samples\Multimedia\DirectShow\Filters\InfTee.

Exemples DirectShow