SDV Media — это облегчённая операционная система, которая расширяет функциональность работы с мультимедиа в SDV Core.
Эталонная реализация SDV Media
Рисунок 1. Архитектура SDV Media.
SDV Media основан на SDV Core и расширяет возможности работы с медиаконтентом за счет доступа к аппаратным процессорам, таким как GPU, видео- и аудиопроцессоры. В будущих версиях могут быть добавлены дополнительные аппаратные процессоры.
В эталонной реализации для реализации аппаратной абстракции используется VirtIO, в частности, virtio-gpu, virtio-media, virtio-snd и virtio-input.
В данной реализации используются стандартные пользовательские библиотеки для доступа к мультимедийным возможностям, таким как OpenGL (ES), Vulkan, EGL, Video4Linux и tinyalsa, поэтому в производственной среде драйверы VirtIO можно заменить и реализовать эти интерфейсы с помощью аппаратных решений.
SDV Media содержит полный функционал SDV Core, что означает наличие коммуникационного стека SDV, использование GKI и включение всех остальных функций SDV.
Варианты интеграции
Оставшаяся часть этой страницы описывает два варианта интеграции SDV Media.
Вариант 1: На основе хоста (рекомендуется)
Рисунок 2. Интеграция на основе хоста.
Вариант интеграции на уровне хоста использует VirtIO внутри гостевой системы для реализации функциональности независимо от фактического оборудования. Специфические для оборудования драйверы интегрируются на стороне хоста и реализуют устройства в соответствии со стандартизированным интерфейсом на основе VirtIO для связи с гостевой системой.
Производительность зависит от используемого на стороне хоста устройства и реализации драйвера, но тесты показали, что система способна достичь высокой производительности и скорости запуска.
Еще одно преимущество этого решения заключается в том, что образы на инфраструктуре и оборудовании могут быть очень похожими, поскольку гостевая система использует стандартизированные интерфейсы. Это приводит к минимальным или нулевым изменениям для запуска на разных устройствах; зависимость от оборудования ограничивается хостом.
Вариант 2: Абстракция библиотеки пользовательского пространства
Рисунок 3. Абстракция библиотеки пользовательского пространства.
В этом варианте интеграции стандартизированными интерфейсами являются низкоуровневые пользовательские библиотеки OpenGL (ES), Vulkan, EGL, Video4Linux и tinyalsa. Партнер отвечает за организацию разделения между гостевой и хост-системой, а разработчик приложения — за обеспечение совместимости с интерфейсами пользовательских библиотек.
Такой подход, вероятно, приводит к различным драйверам в инфраструктурной и аппаратной средах, что может вызвать существенные различия в поведении, а передача изображений невозможна без адаптации к различным средам.
Этот подход предназначен для партнеров, не имеющих полной поддержки VirtIO.
Требования к носителям SDV
Требования к медиафайлам SDV предполагают, что все требования к ядру SDV выполнены. Этого можно достичь, используя эталонную реализацию или заменив системные библиотеки решениями от конкретного поставщика, как описано в предыдущих разделах.