Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
A CBaseReferenceClock classe implementa um relógio de referência.
| Variáveis de membro protegidas | Descrição |
|---|---|
| m_pSchedule | Objeto CAMSchedule que manipula tarefas de agendamento para o relógio. |
| Métodos Protegidos | Descrição |
| ~Cbasereferenceclock | Método de destruidor. |
| Métodos públicos | Descrição |
| Cbasereferenceclock | Método de construtor. |
| Getprivatetime | Recupera o tempo real do relógio. |
| SetTimeDelta | Ajusta a hora do relógio interno. |
| GetSchedule | Recupera um ponteiro para o objeto de agendamento do relógio. |
| TriggerThread | Ativa o thread de trabalho que manipula o agendamento. |
| Métodos IReferenceClock | Descrição |
| GetTime | Recupera a hora de referência atual. |
| AdviseTime | Cria uma solicitação de consultoria única. |
| AdvisePeriodic | Cria uma solicitação de aconselhamento periódica. |
| Unadvise | Remove uma solicitação de aviso pendente. |
| Métodos IReferenceClockTimerControl | Descrição |
| GetDefaultTimerResolution | Retorna a resolução atual do temporizador do relógio de referência. |
| SetDefaultTimerResolution | Define a resolução do temporizador do relógio de referência. |
| Funções auxiliares | Descrição |
| ConvertToMilliseconds | Converte um tempo de referência em milissegundos. |
Comentários
Essa classe implementa um relógio de referência que dá suporte às interfaces IReferenceClock e IReferenceClockTimerControl . Se um filtro puder fornecer um relógio de referência para o grafo de filtro, por exemplo, acessando um dispositivo de hardware, ele poderá usar essa classe para implementar o relógio.
O CBaseReferenceClock objeto mantém dois valores de tempo distintos:
- Internamente, o método CBaseReferenceClock::GetPrivateTime retorna o tempo real mantido pelo relógio.
- Externamente, o método CBaseReferenceClock::GetTime retorna o tempo de referência para o grafo de filtro.
É válido que o relógio interno seja executado para trás em breves períodos. Por exemplo, se o relógio avançar, o filtro poderá ajustá-lo para trás. (Consulte CBaseReferenceClock::SetTimeDelta.) O método GetTime usa os valores de tempo relatados por GetPrivateTime. No entanto, o tempo de referência está aumentando monotonicamente; em outras palavras, ele nunca corre para trás. Portanto, se o relógio interno for executado para trás, GetTime continuará relatando o horário antigo até que o relógio interno seja atualizado.
Por exemplo, os dois métodos podem retornar as seguintes sequências:
GetPrivateTime: 105, 106, 103, 104, 105, 106, 107, 108
GetTime: 105, 106, 106, 106, 106, 106, 107, 108
No terceiro relógio, o relógio interno salta para trás para 103. O método GetTime continua a relatar 106 até que o relógio interno seja atualizado.
Por padrão, GetPrivateTime retorna a hora do sistema por meio de uma chamada para a função timeGetTime . Um filtro que está fornecendo um relógio de referência de um dispositivo externo pode fazer um dos seguintes procedimentos:
- Substitua GetPrivateTime para retornar a hora do dispositivo.
- Monitore a discrepância entre a hora do dispositivo e a hora do sistema e chame SetTimeDelta para fazer correções.
Essa classe usa um objeto CAMSchedule para lidar com o agendamento de solicitações de consultoria. Para obter detalhes, consulte a documentação da classe CAMSchedule .
Requisitos
| Requisito | Valor |
|---|---|
| parâmetro |
|
| Biblioteca |
|