Classe CBaseReferenceClock
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
La CBaseReferenceClock
classe implementa un orologio di riferimento.
Variabili membro protette | Descrizione |
---|---|
m_pSchedule | Oggetto CAMSchedule che gestisce le attività di pianificazione per l'orologio. |
Metodi protetti | Descrizione |
~CBaseReferenceClock | Metodo distruttore. |
Metodi pubblici | Descrizione |
CBaseReferenceClock | Metodo costruttore. |
GetPrivateTime | Recupera l'ora reale dall'orologio. |
SetTimeDelta | Regola l'ora dell'orologio interno. |
GetSchedule | Recupera un puntatore all'oggetto di pianificazione dell'orologio. |
TriggerThread | Riattiva il thread di lavoro che gestisce la pianificazione. |
Metodi IReferenceClock | Descrizione |
GetTime | Recupera l'ora di riferimento corrente. |
ConsiglioTime | Crea una richiesta di consulenza one-shot. |
ConsiglioPeriodic | Crea una richiesta di consulenza periodica. |
Unadvise | Rimuove una richiesta di consulenza in sospeso. |
Metodi IReferenceClockTimerControl | Descrizione |
GetDefaultTimerResolution | Restituisce la risoluzione corrente del timer dell'orologio di riferimento. |
SetDefaultTimerResolution | Imposta la risoluzione del timer dell'orologio di riferimento. |
Funzioni di supporto | Descrizione |
ConvertToMilliseconds | Converte un tempo di riferimento in millisecondi. |
Commenti
Questa classe implementa un orologio di riferimento che supporta le interfacce IReferenceClock e IReferenceClockTimerControl. Se un filtro può fornire un orologio di riferimento per il grafico del filtro, ad esempio accedendo a un dispositivo hardware, può usare questa classe per implementare l'orologio.
L'oggetto CBaseReferenceClock
gestisce due valori temporali distinti:
- Internamente, il metodo CBaseReferenceClock::GetPrivateTime restituisce l'ora effettiva mantenuta dall'orologio.
- Esternamente, il metodo CBaseReferenceClock::GetTime restituisce il tempo di riferimento per il grafico del filtro.
È valido per l'orologio interno da eseguire indietro in brevi periodi. Ad esempio, se l'orologio si sposta in avanti, il filtro può modificarlo indietro. Vedere CBaseReferenceClock::SetTimeDelta. Il metodo GetTime usa i valori temporali segnalati da GetPrivateTime. Tuttavia, il tempo di riferimento aumenta monotonicamente; in altre parole, non viene mai eseguito indietro. Pertanto, se l'orologio interno viene eseguito indietro, GetTime continua a segnalare il tempo precedente fino a quando l'orologio interno non recupera.
Ad esempio, i due metodi potrebbero restituire le sequenze seguenti:
GetPrivateTime: 105, 106, 103, 104, 105, 106, 107, 108
GetTime: 105, 106, 106, 106, 106, 106, 107, 108
Sul terzo segno di spunta, l'orologio interno passa indietro a 103. Il metodo GetTime continua a segnalare 106 fino a quando l'orologio interno non recupera.
Per impostazione predefinita, GetPrivateTime restituisce l'ora di sistema tramite una chiamata alla funzione timeGetTime . Un filtro che fornisce un orologio di riferimento da un dispositivo esterno può eseguire una delle operazioni seguenti:
- Eseguire l'override di GetPrivateTime per restituire l'ora dal dispositivo.
- Monitorare la discrepanza tra l'ora del dispositivo e l'ora di sistema e chiamare SetTimeDelta per apportare correzioni.
Questa classe usa un oggetto CAMSchedule per gestire la pianificazione delle richieste di consulenza. Per informazioni dettagliate, vedere la documentazione per la classe CAMSchedule .
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|