Media Foundation (скорочується до MF) - мультимедійний фреймворк і інтерфейс програмування додатків нового покоління, створений корпорацією Microsoft для роботи з цифровим мультимедіа під операційними системами сімейства Windows, починаючи з Vista. Згідно з планами 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) і їх взаємодії.


1. Архітектура

Media Foundation Architecture

Архітектура MF підрозділяється на шар управління (Control layer), шар ядра (Core layer) і шар платформи (Platform layer). Шар ядра включає більшу частину функціональності Media Foundation. Він є мультимедійним конвеєром, що складається з трьох частин: Media Source (об'єкт-"джерело" мультимедіа даних), Media Sink (об'єкт-"приймач" оброблених даних) і Media Foundation Transforms (MFT).


1.1. Media Foundation Transforms

Media Foundation Transforms отримує від Media Source дані, виробляє проміжну обробку і віддає об'єкту Media Sink. Він може складатися з декількох оброблювальних фільтрів, а може бути і порожнім. Ці фільтри можуть йти послідовно, утворюючи мультимедійний конвеєр (pipeline), а можуть і незалежно один від одного. Приклади фільтрів MFT:

  • Аудіо-і відеокодеки
  • Аудіо-та відеоефекти
  • Мультиплексори і демультиплексори
  • Розгалужувачі
  • Перетворювачі колірного простору
  • Перетворювачі частоти
  • Перетворювачі розміру відео

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


1.2. Enhanced Video Renderer

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


2. Переваги над 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, йдучи в ногу з еволюцією графіки та мультимедійного апаратного забезпечення та вимогами мультимедійних додатків.


3. Використання в додатках

Зараз 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 - msdn2.microsoft.com/en-us/library/aa468614.aspx