Interface IAMPushSource (strmif.h)

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in 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 Audio/Video Capture dans Media Foundation au lieu de DirectShow, si 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.]

L’interface IAMPushSource synchronise un graphique de filtre qui restitue une source dynamique. Une source en direct est une source qui diffuse des données en temps réel, par exemple un appareil de capture ou une diffusion réseau.

Les filtres sources qui diffusent des données en direct doivent exposer cette interface sur leurs broches de sortie. En règle générale, les applications ne doivent pas appeler les méthodes sur cette interface ; utilisez plutôt l’interface IAMGraphStreams .

Héritage

L’interface IAMPushSource hérite d’IAMLatency. IAMPushSource a également les types de membres suivants :

Méthodes

L’interface IAMPushSource a ces méthodes.

 
IAMPushSource ::GetMaxStreamOffset

La méthode GetMaxStreamOffset récupère le décalage de flux maximal que le filtre peut prendre en charge.
IAMPushSource ::GetPushSourceFlags

La méthode GetPushSourceFlags récupère une combinaison d’indicateurs décrivant le comportement du filtre.
IAMPushSource ::GetStreamOffset

La méthode GetStreamOffset récupère le décalage utilisé par le filtre lors de la génération d’horodatages.
IAMPushSource ::SetMaxStreamOffset

La méthode SetMaxStreamOffset spécifie le décalage de flux qui sera autorisé dans le graphique de filtre.
IAMPushSource ::SetPushSourceFlags

La méthode SetPushSourceFlags définit des indicateurs qui spécifient le comportement du filtre. Actuellement, les applications ne doivent pas appeler cette méthode, car les indicateurs de demande ne sont pas pris en charge et une application ne doit pas remplacer les indicateurs définis par le filtre.
IAMPushSource ::SetStreamOffset

La méthode SetStreamOffset définit le décalage pour les horodatages générés par ce filtre.

Remarques

Le Gestionnaire de graphe de filtre utilise les méthodes de cette interface pour résoudre deux problèmes qui se produisent couramment lors du rendu des sources actives :

  • Latence : lorsqu’un graphique de filtre comprend plusieurs sources actives, les sources ont souvent des latences différentes, ce qui peut entraîner leur désynchronisation. Par exemple, si la capture audio a un temps de latence plus long que la capture vidéo, l’audio est en retard par rapport à la vidéo, sauf si le graphique compense la différence.
  • Correspondance de taux : lorsqu’un filtre de convertisseur est connecté à une source dynamique, il doit ajuster son taux de consommation de données pour qu’il corresponde au taux de production du filtre source. Sinon, il peut y avoir des lacunes dans les données (si le convertisseur s’exécute plus rapidement que la source) ou des données peuvent être supprimées (si la source s’exécute plus rapidement).
Pour corriger la latence, le graphe de filtre appelle IAMLatency ::GetLatency sur chaque broche de sortie qui expose l’interface IAMPushSource et détermine la latence maximale dans le graphique. Il appelle ensuite IAMPushSource ::SetStreamOffset sur tous les filtres dont la latence est inférieure à la latence maximale, afin qu’ils ajustent les horodatages qu’ils génèrent selon le décalage correct.

Pour effectuer une correspondance de taux, le graphique de filtre doit déterminer si le filtre de convertisseur peut faire correspondre les fréquences d’horloge au filtre source. La méthode IAMPushSource ::GetPushSourceFlags retourne un ensemble d’indicateurs indiquant s’il est sûr que le convertisseur correspond aux taux avec la source.

Ces problèmes n’affectent pas la capture dans un fichier. Le filtre Enregistreur de fichiers s’appuie sur les horodatages sur les exemples entrants pour écrire correctement le fichier ; les flux sont ensuite synchronisés pendant la lecture. En ce qui concerne la correspondance de taux, les données sont toujours écrites dans le fichier aussi rapidement que possible.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête strmif.h (include Dshow.h)

Voir aussi

IAMLatency