Partager via


Méthode IMediaFilter::SetSyncSource (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 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.]

La SetSyncSource méthode définit l’horloge de référence.

Syntaxe

HRESULT SetSyncSource(
  [in] IReferenceClock *pClock
);

Paramètres

[in] pClock

Pointeur vers l’interface IReferenceClock de l’horloge ou NULL. Si ce paramètre a la valeur NULL, le graphe de filtre n’utilise pas d’horloge de référence et tous les filtres s’exécutent aussi rapidement que possible.

Valeur renvoyée

Retourne S_OK en cas de réussite ou une valeur HRESULT indiquant la cause de l’erreur.

Notes

Tous les filtres du graphe de filtre partagent la même horloge de référence, afin de rester synchronisés. La durée du flux est calculée à partir de l’horloge de référence. Les filtres de renderer utilisent l’horloge de référence pour planifier le rendu des exemples. S’il n’y a pas d’horloge de référence, un filtre de renderer affiche chaque échantillon dès qu’il arrive.

Cette méthode est implémentée par tous les filtres DirectShow, ainsi que par le Gestionnaire de graphes de filtre.

Implémentation de filtres

Lorsque le graphe s’exécute, le gestionnaire Filter Graph appelle cette méthode sur chaque filtre du graphe pour les informer de l’horloge de référence du graphe. Utilisez cette méthode pour stocker le pointeur IReferenceClock . Incrémentez le nombre de références sur le pointeur stocké. Avant que le filtre ne soit supprimé du graphe, le Gestionnaire de graphes de filtre appelle à nouveau SetSyncSource avec la valeur NULL. Relâchez le pointeur stocké et définissez-le sur NULL.

La classe CBaseFilter implémente cette méthode ; consultez CBaseFilter::SetSyncSource.

Notez que les filtres ne peuvent pas utiliser cette méthode pour sélectionner l’horloge du graphique. Dans les filtres, la seule fonction de cette méthode est d’informer le filtre de l’horloge utilisée par le graphique. Un filtre peut fournir une horloge de référence en exposant l’interface IReferenceClock . Pour plus d’informations, consultez Heure et horloges dans DirectShow.

Utilisation de l’application

Une application peut remplacer l’horloge par défaut en appelant SetSyncSource sur le Gestionnaire de graphes de filtre. Ne le faites pas, sauf si vous avez une raison particulière de préférer une autre horloge. Vous pouvez également définir le graphique pour qu’il n’utilise aucune horloge de référence, en appelant SetSyncSource avec la valeur NULL. Vous pouvez effectuer cette opération pour traiter des exemples aussi rapidement que possible. Pour plus d’informations, consultez Définition de l’horloge graphique.

Les applications ne doivent jamais appeler cette méthode sur les filtres.

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête strmif.h (include Dshow.h)
Bibliothèque Strmiids.lib

Voir aussi

Codes d’erreur et de réussite

IFilterGraph::SetDefaultSyncSource

IMediaFilter Interface