CBaseReferenceClock, classe
[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.]
La CBaseReferenceClock
classe implémente une horloge de référence.
Variables de membre protégé | Description |
---|---|
m_pSchedule | Objet CAMSchedule qui gère la planification des tâches pour l’horloge. |
Méthodes protégées | Description |
~CBaseReferenceClock | Méthode de destructeur. |
Méthodes publiques | Description |
CBaseReferenceClock | Méthode du constructeur. |
GetPrivateTime | Récupère le temps réel de l’horloge. |
SetTimeDelta | Ajuste l’heure d’horloge interne. |
GetSchedule | Récupère un pointeur vers l’objet de planification de l’horloge. |
TriggerThread | Réveille le thread de travail qui gère la planification. |
IReferenceClock, méthodes | Description |
GetTime | Récupère l’heure de référence actuelle. |
AdviseTime | Crée une demande de conseil en une seule fois. |
AdvisePeriodic | Crée une demande d’avis périodique. |
Annuler l’aadvise | Supprime une demande d’avis en attente. |
IReferenceClockTimerControl, méthodes | Description |
GetDefaultTimerResolution | Retourne la résolution actuelle du minuteur de l’horloge de référence. |
SetDefaultTimerResolution | Définit la résolution du minuteur de l’horloge de référence. |
Fonctions d’assistance | Description |
ConvertToMilliseconds | Convertit une heure de référence en millisecondes. |
Notes
Cette classe implémente une horloge de référence qui prend en charge les interfaces IReferenceClock et IReferenceClockTimerControl . Si un filtre peut fournir une horloge de référence pour le graphique de filtres, par exemple, en accédant à un appareil matériel, il peut utiliser cette classe pour implémenter l’horloge.
L’objet CBaseReferenceClock
conserve deux valeurs temporelles distinctes :
- En interne, la méthode CBaseReferenceClock::GetPrivateTime retourne l’heure réelle conservée par l’horloge.
- En externe, la méthode CBaseReferenceClock::GetTime retourne l’heure de référence pour le graphique de filtre.
Il est valide pour que l’horloge interne s’exécute en arrière sur de brèves périodes. Par exemple, si l’horloge dérive vers l’avant, le filtre peut l’ajuster vers l’arrière. (Voir CBaseReferenceClock::SetTimeDelta.) La méthode GetTime utilise les valeurs de temps signalées par GetPrivateTime. Toutefois, l’heure de référence augmente de façon monotone; en d’autres termes, elle ne recule jamais. Par conséquent, si l’horloge interne s’exécute vers l’arrière, GetTime continue de signaler l’ancienne heure jusqu’à ce que l’horloge interne se rattrape.
Par exemple, les deux méthodes peuvent retourner les séquences suivantes :
GetPrivateTime: 105, 106, 103, 104, 105, 106, 107, 108
GetTime: 105, 106, 106, 106, 106, 106, 107, 108
Au troisième battement d’horloge, l’horloge interne saute en arrière à 103. La méthode GetTime continue de signaler 106 jusqu’à ce que l’horloge interne se rattrape.
Par défaut, GetPrivateTime retourne l’heure système, par le biais d’un appel à la fonction timeGetTime . Un filtre qui fournit une horloge de référence à partir d’un appareil externe peut effectuer l’une des opérations suivantes :
- Remplacez GetPrivateTime pour renvoyer l’heure à partir de l’appareil.
- Surveillez l’écart entre l’heure de l’appareil et l’heure système, puis appelez SetTimeDelta pour apporter des corrections.
Cette classe utilise un objet CAMSchedule pour gérer la planification des demandes de conseil. Pour plus d’informations, consultez la documentation de la classe CAMSchedule .
Configuration requise
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|