Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Функция, связанная с этой страницей, 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 обрабатывает данные, а клиент получает полученные выходные буферы.
Связанные разделы