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


Общие сведения об уведомлении о событиях

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

Фильтр уведомляет диспетчер фильтров Graph о событии, публикуя уведомление о событии. Событие может быть ожидаемым, например в конце потока, или может представлять ошибку, например сбой при отрисовки потока. Диспетчер фильтров графа обрабатывает некоторые события фильтра самостоятельно, а другие оставляет приложению. Если диспетчер фильтров графов не обрабатывает событие фильтра, он помещает уведомление о событии в очередь. Граф фильтров также может ставить в очередь собственные уведомления о событиях для приложения.

Приложение получает события из очереди и реагирует на них в зависимости от типа события. Таким образом, уведомление о событиях в DirectShow похоже на схему очередей сообщений Microsoft Windows. Приложение также может отменить поведение диспетчера фильтров Graph по умолчанию для заданного типа события. Затем диспетчер фильтров графов помещает эти события непосредственно в очередь для обработки приложением.

Этот механизм включает

  • Диспетчер фильтров Графа для взаимодействия с приложением.
  • Фильтры для взаимодействия с приложением и диспетчером фильтров Graph.
  • Приложение для определения степени его участия в обработке событий.