
Android включает в себя Stagefright, механизм воспроизведения мультимедиа на собственном уровне, который имеет встроенные программные кодеки для популярных медиаформатов.
Функции воспроизведения аудио и видео Stagefright включают интеграцию с кодеками OpenMAX, управление сеансами, синхронизированный по времени рендеринг, управление транспортировкой и DRM.
Stagefright также поддерживает интеграцию с предоставленными вами аппаратными кодеками. Чтобы установить аппаратный путь для кодирования и декодирования мультимедиа, необходимо реализовать аппаратный кодек как компонент OpenMax IL (уровень интеграции).
Примечание. Обновления Stagefright могут происходить в рамках ежемесячного процесса обновления безопасности Android или как часть выпуска ОС Android.
Архитектура
Мультимедийные приложения взаимодействуют с собственной мультимедийной платформой Android в соответствии со следующей архитектурой.

Рисунок 1. Медиа-архитектура
- Платформа приложений
- На уровне платформы приложения находится код приложения, который использует API-интерфейсы android.media для взаимодействия с мультимедийным оборудованием.
- Связующее МПК
-  Прокси-серверы Binder IPC облегчают взаимодействие через границы процессов. Они расположены в каталоге frameworks/av/media/libmediaи начинаются с буквы «I».
- Собственная мультимедийная платформа
-  На собственном уровне Android предоставляет мультимедийную среду, использующую движок Stagefright для записи и воспроизведения аудио и видео. Stagefright поставляется со списком поддерживаемых программных кодеков по умолчанию, и вы можете реализовать свой собственный аппаратный кодек, используя стандарт уровня интеграции OpenMax. Дополнительные сведения о реализации см. в компонентах MediaPlayer и Stagefright, расположенных в frameworks/av/media.
- Уровень интеграции OpenMAX (IL)
-  OpenMAX IL предоставляет Stagefright стандартизированный способ распознавания и использования пользовательских аппаратных мультимедийных кодеков, называемых компонентами. Вы должны предоставить плагин OpenMAX в виде общей библиотеки с именем libstagefrighthw.so. Этот плагин связывает Stagefright с вашими пользовательскими компонентами кодека, которые должны быть реализованы в соответствии со стандартом компонентов OpenMAX IL.
Реализация пользовательских кодеков
 Stagefright поставляется со встроенными программными кодеками для распространенных медиаформатов, но вы также можете добавить свои собственные аппаратные кодеки в качестве компонентов OpenMAX. Для этого вам необходимо создать компоненты OMX и плагин OMX, который объединяет ваши пользовательские кодеки с платформой Stagefright. Примеры компонентов см. в файле hardware/ti/omap4xxx/domx/ ; пример плагина для Galaxy Nexus см. в hardware/ti/omap4xx/libstagefrighthw .
Чтобы добавить свои собственные кодеки:
-  Создавайте свои компоненты в соответствии со стандартом компонентов OpenMAX IL. Интерфейс компонента находится в файле frameworks/native/include/media/OpenMAX/OMX_Component.h. Чтобы узнать больше о спецификации OpenMAX IL, посетите веб-сайт OpenMAX .
-  Создайте плагин OpenMAX, который свяжет ваши компоненты с сервисом Stagefright. Интерфейсы для создания плагина см. в файлах заголовков frameworks/native/include/media/hardware/OMXPluginBase.hиHardwareAPI.h.
-  Создайте свой плагин как общую библиотеку с именем libstagefrighthw.soв Makefile вашего продукта. Например:LOCAL_MODULE := libstagefrighthw В Makefile вашего устройства убедитесь, что вы объявили модуль как пакет продукта: PRODUCT_PACKAGES += \ libstagefrighthw \ ... 
Предоставление кодеков фреймворку
 Служба Stagefright анализирует файлы system/etc/media_codecs.xml и system/etc/media_profiles.xml чтобы предоставить разработчикам приложений поддерживаемые кодеки и профили на устройстве через классы android.media.MediaCodecList и android.media.CamcorderProfile . Вы должны создать оба файла в каталоге device/<company>/<device>/ и скопировать их в каталог system/etc образа системы в Makefile вашего устройства. Например:
PRODUCT_COPY_FILES += \ device/samsung/tuna/media_profiles.xml:system/etc/media_profiles.xml \ device/samsung/tuna/media_codecs.xml:system/etc/media_codecs.xml \
 Полные примеры см. в файлах device/samsung/tuna/media_codecs.xml и device/samsung/tuna/media_profiles.xml .
 Примечание. Начиная с Android 4.1, элемент <Quirk> для медиакодеков больше не поддерживается.
