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

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

Интерфейс IReferenceClock предоставляет время отсчета для графа фильтра.

Фильтры, которые могут выступать в качестве эталонных часов, могут предоставлять этот интерфейс. Он также предоставляется системными эталонными часами. Диспетчер графов фильтров использует этот интерфейс для синхронизации графа фильтров. Приложения могут использовать этот интерфейс для получения текущего эталонного времени или для запроса уведомления об затраченном времени.

Дополнительные сведения см. в разделе Время и часы в DirectShow.

Фильтрация разработчиков: Реализуйте этот интерфейс, если вы создаете фильтр, который создает надежное время часов. Например, отрисовщики звука реализуют этот интерфейс, так как звуковые платы обычно содержат эталонные часы. Для реализации этого интерфейса используйте класс CBaseReferenceClock .

Чтобы увеличить вероятность того, что фильтр, не отрисовывая, будет выбран диспетчером фильтров графа в качестве ссылки, выполните следующие действия.

  1. Реализуйте IReferenceClock в фильтре.
  2. Реализуйте IAMFilterMiscFlags в фильтре.
  3. Возвращает AM_FILTER_MISC_FLAGS_IS_SOURCE из IAMFilterMiscFlags::GetMiscFlags.
  4. Реализуйте IAMPushSource на всех выходных контактах.
  5. Return (* pFlags) = 0 из IAMPushSource::GetPushSourceFlags.
  6. Вы можете вернуть E_NOTIMPL из всех других методов IAMPushSource .

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

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

Методы

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

 
IReferenceClock::AdvisePeriodic

Метод AdvisePeriodic создает периодический запрос на получение рекомендаций.
IReferenceClock::AdviseTime

Метод AdviseTime создает однократный запрос на получение рекомендаций.
IReferenceClock::GetTime

Метод GetTime извлекает текущее эталонное время.
IReferenceClock::Unadvise

Метод Unadvise удаляет ожидающий запрос на получение рекомендаций.

Требования

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