Compartilhar via


Horários do Relógio

[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.]

O DirectShow define dois horários de relógio relacionados: hora de referência e tempo de fluxo.

  • Hora de referência é a hora absoluta retornada pelo relógio de referência. (Consulte Relógios de referência.)
  • O tempo de fluxo é definido em relação a quando o grafo começou a ser executado pela última vez.
    • Enquanto o grafo está em execução, o tempo de fluxo é igual à hora de referência menos a hora de início.
    • Enquanto o grafo está em pausa, o tempo de fluxo permanece no momento do fluxo quando ele foi pausado.
    • Após uma operação de busca, o tempo de fluxo é redefinido para zero.
    • Enquanto o grafo é interrompido, o tempo de fluxo é indefinido.

Quando um exemplo de mídia tem um carimbo de data/hora t, isso significa que o exemplo deve ser renderizado no momento do fluxo t. Por esse motivo, o tempo de fluxo também é chamado de tempo de apresentação.

Quando um aplicativo chama IMediaControl::Run para executar o grafo de filtro, o Gerenciador de Grafo de Filtro chama IMediaFilter::Run em cada filtro. Para compensar a pequena quantidade de tempo que leva para os filtros começarem a ser executados, o Gerenciador de Gráficos de Filtro especifica um tempo de início ligeiramente no futuro.

Hora e relógios no DirectShow

Carimbos de Data/Hora