CBaseReferenceClock-Klasse

cbasereferenceclock-Klassenhierarchie

Die CBaseReferenceClock -Klasse implementiert eine Verweisuhr.

Geschützte Membervariablen Beschreibung
m _ pSchedule CAMSchedule-Objekt, das Planungsaufgaben für die Uhr verarbeitet.
Geschützte Methoden Beschreibung
~CBaseReferenceClock Destruktormethode.
Öffentliche Methoden Beschreibung
CBaseReferenceClock Konstruktormethode.
GetPrivateTime Ruft die Echtzeit aus der Uhr ab.
SetTimeDelta Passt die interne Uhrzeit an.
GetSchedule Ruft einen Zeiger auf das Zeitplanungsobjekt der Uhr ab.
TriggerThread Reaktiviert den Arbeitsthread, der die Planung verarbeitet.
IReferenceClock-Methoden Beschreibung
Gettime Ruft die aktuelle Verweiszeit ab.
AdviseTime Erstellt eine einmalige Advise-Anforderung.
AdvisePeriodic Erstellt eine regelmäßige Advise-Anforderung.
Unadvise Entfernt eine ausstehende Advise-Anforderung.
IReferenceClockTimerControl-Methoden Beschreibung
GetDefaultTimerResolution Gibt die aktuelle Auflösung des Timers der Verweisuhr zurück.
SetDefaultTimerResolution Legt die Auflösung des Zeitgebers der Verweisuhr fest.
Hilfsfunktionen Beschreibung
ConvertToMilliseconds Konvertiert eine Verweiszeit in Millisekunden.

Hinweise

Diese Klasse implementiert eine Referenzuhr, die die Schnittstellen IReferenceClock und IReferenceClockTimerControl unterstützt. Wenn ein Filter eine Referenzuhr für das Filterdiagramm bereitstellen kann, z. B. durch Den Zugriff auf ein Hardwaregerät, kann er diese Klasse verwenden, um die Uhr zu implementieren.

Das CBaseReferenceClock -Objekt verwaltet zwei unterschiedliche Zeitwerte:

Es ist gültig, dass die interne Uhr über kurze Zeiträume rückwärts ausgeführt wird. Wenn die Uhr beispielsweise vorwärts driftet, kann der Filter sie rückwärts anpassen. (Siehe CBaseReferenceClock::SetTimeDelta.) Die GetTime-Methode verwendet die von GetPrivateTime gemeldeten Zeitwerte. Die Bezugszeit nimmt jedoch monoton zu. anders ausgedrückt: Es wird nie rückwärts ausgeführt. Wenn die interne Uhr rückwärts ausgeführt wird, berichtet GetTime daher weiterhin die alte Zeit, bis die interne Uhr aufholt.

Beispielsweise können die beiden Methoden die folgenden Sequenzen zurückgeben:

GetPrivateTime: 105, 106, 103, 104, 105, 106, 107, 108
GetTime:        105, 106, 106, 106, 106, 106, 107, 108

Beim dritten Takt springt die interne Uhr zurück auf 103. Die GetTime-Methode berichtet weiterhin 106, bis die interne Uhr aufholt.

Standardmäßig gibt GetPrivateTime die Systemzeit über einen Aufruf der timeGetTime-Funktion zurück. Ein Filter, der eine Referenzuhr von einem externen Gerät an stellt, kann eine der folgenden Aufgaben anwenden:

  • Überschreiben Sie GetPrivateTime, um die Zeit vom Gerät zurück zu geben.
  • Überwachen Sie die Abweichung zwischen der Gerätezeit und der Systemzeit, und rufen Sie SetTimeDelta auf, um Korrekturen vorzunehmen.

Diese Klasse verwendet ein WEBCAMSchedule-Objekt, um die Planung von Advise-Anforderungen zu verarbeiten. Weitere Informationen finden Sie in der Dokumentation zur KLASSE "WEBCAMSchedule".

Anforderungen

Anforderung Wert
Header
Refclock.h (include Streams.h)
Bibliothek
Strmbase.lib (Einzelhandels-Builds);
Strmbasd.lib (Debugbuilds)