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


Преимущества МДО

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

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

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

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

Чем МДО отличаются от фильтров DirectShow

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

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

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

Сведения о МДО