Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngineet audio/vidéo capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et 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.]
Dans l’interface IMemInputPin, le filtre en amont détermine les données à envoyer et envoie les données au filtre en aval. Pour certains filtres, un modèle d’extraction est plus approprié. Ici, le filtre en aval demande des données à partir du filtre en amont. Les échantillons se déplacent toujours en aval, de l’épingle de sortie à la broche d’entrée, mais le filtre en aval lance le flux de données. Ce type de connexion utilise l’interface IAsyncReader.
L’utilisation classique du modèle d’extraction est en lecture de fichier. Par exemple, dans un graphique de lecture AVI, le filtre source de fichiers Async effectue des opérations de lecture de fichiers génériques et fournit les données sous forme de flux d’octets, sans informations de format. Le filtre AVI Splitter lit les en-têtes AVI et analyse le flux dans des exemples vidéo et audio. Le fractionnement AVI peut déterminer les données dont il a besoin mieux que le filtre de source de fichiers Async et utilise donc IAsyncReader au lieu de IMemInputPin.
Pour demander des données à partir de la broche de sortie, la broche d’entrée appelle l’une des méthodes suivantes :
La première méthode est asynchrone pour prendre en charge plusieurs lectures superposées. Les autres sont synchrones.
En théorie, n’importe quel filtre peut prendre en charge IAsyncReader, mais dans la pratique, il est conçu pour les filtres sources qui se connectent aux filtres d’analyseur. L’analyseur agit beaucoup comme un filtre source dans le modèle Push. Lorsqu’il s’interrompt, il crée un thread de diffusion en continu qui extrait les données de la connexion IAsyncReader et les envoie (push) en aval. Les broches de sortie utilisent IMemInputPin, et le reste du graphique utilise le modèle push standard.
Rubriques connexes
-
flux de données dans le du graphique de filtre