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

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

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

схема, показывающая высокоуровневое представление архитектуры основы мультимедиа.

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