Поделиться через


Интерфейс IReferenceClockTimerControl (strmif.h)

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

Интерфейс IReferenceClockTimerControl изменяет период таймера, используемый эталонными часами. Этот интерфейс предоставляется системными эталонными часами DirectShow.

Наследование

Интерфейс IReferenceClockTimerControl наследуется от интерфейса IUnknown . IReferenceClockTimerControl также имеет следующие типы элементов:

Методы

Интерфейс IReferenceClockTimerControl содержит следующие методы.

 
IReferenceClockTimerControl::GetDefaultTimerResolution

Метод GetDefaultTimerResolution возвращает разрешение таймера, запрошенное эталонными часами.
IReferenceClockTimerControl::SetDefaultTimerResolution

Метод SetDefaultTimerResolution задает минимальное разрешение таймера.

Комментарии

По умолчанию системные эталонные часы в DirectShow устанавливают для периода таймера минимальное значение, разрешенное таймером. Как правило, это значение равно 1 миллисекундам.

Период таймера является глобальными параметрами в Windows. Более высокое разрешение может повысить точность интервалов времени ожидания в функциях ожидания. Однако это также может снизить общую производительность системы, так как планировщик потоков чаще переключает задачи. Высокие разрешения также могут препятствовать переходу системы управления питанием ЦП в режимы энергосбережения. Установка более высокого разрешения не повышает точность счетчика производительности с высоким разрешением.

Main назначение этого интерфейса — переопределить параметр таймера по умолчанию для ссылочных часов. Для этого вызовите SetDefaultTimerResolution со значением 0. Это может привести к снижению разрешения таймера, что может позволить компьютеру пользователя перейти в режим экономии энергии. (Фактическое поведение зависит от многих других факторов, например от того, какие другие процессы выполняются.) Фильтр DVD Navigator использует этот интерфейс, как описано здесь.

Если фильтру DirectShow требуется более высокое разрешение таймера, он должен вызывать timeBeginPeriod. Обычно это требование применяется только к фильтрам отрисовщика.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)