Преимущества динамических административных объектов

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

DMOS предлагают следующие преимущества:

  • Как правило, они меньше и проще, чем фильтры DirectShow, так как они поддерживают меньше функций.
  • Они являются более гибкими, чем фильтры DirectShow, так как они не требуют графа фильтров. Их можно использовать с DirectShow, если вам нужны службы, предоставляемые DirectShow, такие как синхронизация, интеллектуальное подключение, автоматическая обработка потока данных и управление потоками. Клиенты, которые не нуждаются в этих службах, могут напрямую получать доступ к динамическим анализам данных.
  • DmOs всегда выполняют синхронную обработку данных, что устраняет многие из проблем потоков, которые необходимо учитывать при написании фильтра.
  • В отличие от традиционных кодеков ACM и VCM, dmos основаны на объектной модели компонента (COM), поэтому их можно расширить через QueryInterface.
  • Динамические контроллеры интеллектуального анализа данных поддерживают более обобщенную модель потоковой передачи, чем кодеки ACM или VCM. Как и фильтры DirectShow, dmOs может поддерживать несколько входных и нескольких выходных данных.

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

Отличия dmos от фильтров DirectShow

Фильтры DirectShow не могут функционировать вне графа фильтров DirectShow. В DirectShow диспетчер фильтров посредников между приложением и фильтрами. Фильтры DirectShow выполняют большую часть работы, необходимой для потоковой передачи данных, включая:

  • Выделение буферов.
  • Согласование типов мультимедиа и подключений к другим фильтрам.
  • Отправка данных через граф фильтров.
  • Отправка событий в диспетчер графов фильтров.
  • Синхронизация нескольких потоков.

В отличие от этого, DMO не делает ни одного из этих вещей. Вместо этого эти типы задач являются ответственностью клиента с помощью DMO. Клиент выделяет буферы, заполняет их данными и передает их в DMO. DMO обрабатывает данные, а клиент получает полученные выходные буферы.

О dmOS