Media Foundation (Media Foundation)

Перейти к навигации Перейти к поиску

Media Foundation (сокращается до MF) — мультимедийный фреймворк и интерфейс программирования приложений нового поколения, созданный корпорацией Microsoft для работы с цифровым мультимедиа под операционными системами семейства Windows, начиная с Vista. Основан на Component Object Model (COM) и написан в расчёте на использование из C/C++. Согласно планам Microsoft, он заменит DirectShow, Windows Media SDK, DirectX Media Objects (DMOs) и более старые мультимедийные API, такие, как Audio Compression Manager (ACM) и Video for Windows (VfW). При этом в течение некоторого времени предполагается параллельное сосуществование DirectShow и Media Foundation. В Windows XP и более старых операционных системах использование MF не планируется.

В первом релизе Media Foundation, выпущенном с Windows Vista, основное внимание уделено качеству воспроизведения аудио и видео, контенту высокой чёткости (то есть, ТВЧ), защите контента, более унифицированному подходу к контролю доступа к цифровым данным для средств защиты авторских прав (DRM) и их взаимодействию.

Архитектура

[править | править код]
Media Foundation Architecture

Архитектура MF подразделяется на слой управления (Control layer), слой ядра (Core layer) и слой платформы (Platform layer). Слой ядра включает большую часть функциональности Media Foundation. Он является мультимедийным конвейером, состоящим из трёх частей: Media Source (объект-«источник» мультимедиа данных), Media Sink (объект-«приёмник» обработанных данных) и Media Foundation Transforms (MFT).

Media Foundation Transforms

[править | править код]

Media Foundation Transforms получает от Media Source данные, производит промежуточную обработку и отдаёт объекту Media Sink. Он может состоять из нескольких обрабатывающих фильтров, а может быть и пустым. Эти фильтры могут идти последовательно, образуя мультимедийный конвейер (pipeline), а могут и независимо друг от друга. Примеры фильтров MFT:

  • Аудио- и видеокодеки
  • Аудио- и видеоэффекты
  • Мультиплексоры и демультиплексоры
  • Разветвители
  • Преобразователи цветового пространства
  • Преобразователи частоты
  • Преобразователи размера видео

Для Windows Vista Microsoft рекомендует разработчикам писать фильтры MFT вместо DirectShow[1].

Enhanced Video Renderer

[править | править код]

В MF включён новый видео рендерер, Enhanced Video Renderer (EVR), который является следующим поколением рендереров в ряду VMR 7 и 9. В Media Foundation EVR выступает в качестве объекта Media Sink (объекта-приёмника), при этом он может смешивать до 16 параллельных потоков, один из которых является референсным. Все потоки, кроме референсного, могут содержать информацию о прозрачности каждого своего пикселя и информацию о порядке наложения. Референсный поток не имеет прозрачных пикселей и всегда находится в самом низу порядка наложения. Результирующее изображение создаётся путём окраски каждого пикселя согласно цвету и прозрачности соответствующих пикселей всех потоков.

Преимущества над DirectShow

[править | править код]

MF обладает следующими преимуществами:

  • Масштабируемость для высокоразмерного контента и контента, защищённого DRM.
  • Позволяет использовать DirectX-акселерацию видео без использования инфраструктуры DirectShow. DXVA 2.0 может быть доступен для компонент пользователя без использования видео рендерера DirectShow.
  • Media Foundation позволяет совместно работать различным системам защиты контента.
  • Media Foundation использует Multimedia Class Scheduler Service (MMCSS, англ.), новую службу, которая выставляет воспроизведению мультимедиа приоритет реального времени для резервирования требуемых при воспроизведения ресурсов. MMCSS гарантирует мультимедийным приложениям приоритетный доступ к ресурсам ЦП, который обеспечивает более точное по времени воспроизведение мультимедиа.

Media Foundation сопутствует двум другим технологиям — Direct3D 10 и Windows Presentation Foundation, идя в ногу с эволюцией графики и мультимедийного аппаратного обеспечения и требованиями мультимедийных приложений.

Использование в приложениях

[править | править код]

Сейчас Media Foundation используется главным образом в службах и сервисах Windows:

  • Windows Protected Media Path (PMP), полностью основан на Media Foundation.
  • Windows Media Player в Windows Vista использует Media Foundation для воспроизведения формата ASF (WMA и WMV) и защищённого контента, но вместо этого также может использовать DirectShow или Windows Media Format SDK. В случае воспроизведения WMV9, также используется DXVA 2.0 вместо DXVA 1.0, если поддерживается аппаратное декодирование WMV9/VC-1.
  • DirectX Video Acceleration (DXVA) 2.0, конвейер аппаратной акселерации видео в Windows Vista, также основан на Media Foundation.

Примечания

[править | править код]
  1. Migrating from DirectShow to Media Foundation and comparison of the two. Дата обращения: 19 октября 2009. Архивировано из оригинала 9 апреля 2008 года.