Время часов
[Функция, связанная с этой страницей, DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngineи аудио и видеозахват в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать новый код MediaPlayer, IMFMediaEngine и аудио-видеозахват в Media Foundation вместо DirectShowпо возможности. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
DirectShow определяет два связанных времени часов: время ссылки и время потока.
- время ссылки — это абсолютное время, возвращаемое эталонными часами. (См. справочные часы.)
-
время потока определяется относительно времени последнего запуска графа.
- Во время выполнения графа время потока равно времени ссылки минус времени начала.
- Пока граф приостановлен, время потока остается в момент приостановки потока.
- После операции поиска время потока сбрасывается до нуля.
- Пока граф остановлен, время потока не определено.
Если в образце носителя есть метка времени t, это означает, что образец должен отображаться во время потока t. По этой причине время потока также называется время презентации.
Когда приложение вызывает IMediaControl::Run для запуска графа фильтра, диспетчер фильтров вызывает IMediaFilter::Run для каждого фильтра. Чтобы компенсировать небольшое время, которое требуется для запуска фильтров, диспетчер графов фильтров указывает время начала немного в будущем.
Связанные разделы