Обзор архитектуры Media Foundation

В этом разделе описывается общая конструкция Microsoft Media Foundation. Сведения об использовании Media Foundation для конкретных задач программирования см. в руководстве по программированию Media Foundation.

На следующей схеме показано высокоуровневое представление архитектуры Media Foundation.

diagram showing a high-level view of the media foundation architecture.

Media Foundation предоставляет две разные модели программирования. Первая модель, показанная слева от схемы, использует сквозной конвейер для данных мультимедиа. Приложение инициализирует конвейер ( например, предоставляя URL-адрес файла для воспроизведения), а затем вызывает методы для управления потоковой передачей. Во второй модели, показанной справа от схемы, приложение либо извлекает данные из источника, либо отправляет их в место назначения (или оба). Эта модель особенно полезна, если необходимо обработать данные, так как приложение имеет прямой доступ к потоку данных.

Примитивы и платформа

Начиная с нижней части схемы, примитивы являются вспомогательными объектами , используемыми в API Media Foundation:

  • Атрибуты — это универсальный способ хранения информации внутри объекта в виде списка пар "ключ—значение".
  • Типы мультимедиа описывают формат потока данных мультимедиа.
  • Буферы мультимедиа содержат фрагменты данных мультимедиа, такие как видеокадры и звуковые образцы, и используются для передачи данных между объектами.
  • Примеры мультимедиа — это контейнеры для буферов мультимедиа. Они также содержат метаданные об буферах, например метки времени.

API платформы Media Foundation предоставляют некоторые основные функциональные возможности, используемые конвейером Media Foundation, например асинхронные обратные вызовы и рабочие очереди. Некоторым приложениям может потребоваться вызвать эти API напрямую; кроме того, они потребуются при реализации пользовательского источника, преобразования или приемника для Media Foundation.

Конвейер мультимедиа

Конвейер мультимедиа содержит три типа объектов, которые создают или обрабатывают данные мультимедиа:

  • Источники мультимедиа вводят данные в конвейер. Источник мультимедиа может получить данные из локального файла, например видеофайла; из сетевого потока; или с аппаратного устройства захвата.
  • Преобразования Media Foundation (MFT) обрабатывают данные из потока. Кодировщики и декодеры реализуются как MFT.
  • Приемники мультимедиа используют данные; например, показывая видео на экране, воспроизводив звук или записывая данные в файл мультимедиа.

Сторонние стороны могут реализовать собственные пользовательские источники, приемники и MFT; Например, для поддержки новых форматов файлов мультимедиа.

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

Средство чтения исходного кода и модуль записи приемника

Средство чтения исходного кода и модуль записи приемников предоставляют альтернативный способ использования базовых компонентов Media Foundation (источников мультимедиа, преобразований и приемников мультимедиа). Средство чтения источника содержит источник мультимедиа и ноль или больше декодеров, а модуль записи приемника размещает приемник мультимедиа и ноль или несколько кодировщиков. Средство чтения источника можно использовать для получения сжатых или несжатых данных из источника мультимедиа, а модуль записи приемника — для кодирования данных и отправки данных в приемник мультимедиа.

Примечание

Средство чтения исходного кода и модуль записи приемника доступны в Windows 7.

 

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

Media Foundation: основные понятия

Архитектура Media Foundation