Время часов

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

DirectShow определяет два связанных времени часов: время ссылки и время потока.

  • Эталонное время — это абсолютное время, возвращаемое эталонными часами. (См. раздел Эталонные часы.)
  • Время потока определяется относительно времени последнего запуска графа.
    • Во время работы графа время потока равно времени ссылки минус время начала.
    • Пока граф приостановлен, время потока остается на момент приостановки потока.
    • После операции поиска время потока сбрасывается до нуля.
    • Пока граф останавливается, время потока не определено.

Если образец мультимедиа имеет метку времени t, это означает, что образец должен быть отрисован во время потока t. По этой причине время потока также называется временем презентации.

Когда приложение вызывает IMediaControl::Run для запуска графа фильтра, диспетчер графа фильтров вызывает IMediaFilter::Run для каждого фильтра. Чтобы компенсировать небольшое время, необходимое для начала работы фильтров, диспетчер графов фильтров задает время запуска в будущем.

Время и часы в DirectShow

Метки времени