Compartilhar via


Horários do Relógio

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture na 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 no 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 transmissão.

  • a hora de referência é a hora absoluta retornada pelo relógio de referência. (Consulte relógios de referência.)
  • 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 como 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 a amostra deve ser renderizada em tempo de fluxo t. Por esse motivo, o tempo de transmissão também é chamado hora da apresentação.

Quando um aplicativo chama IMediaControl::Run para executar o grafo de filtro, o Gerenciador de Grafo de Filtro chama IMediaFilter::Executar em cada filtro. Para compensar o pouco tempo necessário para que os filtros comecem a ser executados, o Gerenciador de Grafo de Filtro especifica um tempo de início ligeiramente no futuro.

hora e relógios no directshow

carimbos de data/hora