SDV Media is a lightweight operating system that adds media functionality to SDV Core.
SDV Media reference implementation
Figure 1. SDV Media architecture.
SDV Media is based on SDV Core and adds media capabilities by adding access to hardware engines like GPU, video, and audio. Future releases might add additional hardware engines.
The reference implementation uses VirtIO to implement the hardware abstraction, in particular virtio-gpu, virtio-media, virtio-snd, and virtio-input.
The implementation uses standard user-space libraries for accessing media capabilities like OpenGL (ES), Vulkan, EGL, Video4Linux, and tinyalsa, so a production implementation can replace the VirtIO drivers and implement those interfaces with hardware-specific solutions.
SDV Media contains the full functionality of SDV Core, which means it contains the SDV communication stack, uses GKI, and includes all other features of SDV.
Integration options
The remainder of this page explains the two options for SDV Media integration.
Option 1: Host-based (recommended)
Figure 2. Host-based integration.
The host-based integration option uses VirtIO within the guest to implement the functionality independent of the actual hardware. The hardware-specific drivers are integrated on the host side and implement devices according to the standardized VirtIO-based interface to communicate with the guest.
The performance depends on the host-side device and driver implementation, but tests have shown that the system can achieve high performance and startup speed.
Another benefit of this solution is that images on infrastructure and hardware can be very similar, as the guest uses standardized interfaces. This leads to minimal to no changes to run on different devices; the hardware dependency is limited to the host.
Option 2: User space library abstraction
Figure 3. User space library abstraction.
In this integration option, the standardized interfaces are the low-level user-space libraries OpenGL (ES), Vulkan, EGL, Video4Linux, and tinyalsa. The partner is responsible for orchestrating the split between guest and host, while the app developer is responsible for fulfilling compatibility with the user-space library interfaces.
This approach likely leads to different drivers in infrastructure and hardware environments, which can lead to major differences in behavior, and images can't be transferred without adaptation to different environments.
This approach is intended for partners without full VirtIO support.
SDV Media Requirements
SDV Media requirements assume that all SDV Core requirements are fulfilled. This can be achieved by using the reference implementation, or by replacing the system libraries with vendor specific solutions as described in the previous sections.