O SDV Media é um sistema operacional leve que adiciona funcionalidade de mídia ao SDV Core.
Implementação de referência de mídia SDV
Figura 1. Arquitetura de mídia SDV.
A SDV Media é baseada na SDV Core e adiciona recursos de mídia ao incluir acesso a mecanismos de hardware, como GPU, vídeo e áudio. As próximas versões podem adicionar outros mecanismos de hardware.
A implementação de referência usa o VirtIO para implementar a abstração de hardware, em particular virtio-gpu, virtio-media, virtio-snd e virtio-input.
A implementação usa bibliotecas padrão de espaço do usuário para acessar recursos de mídia, como OpenGL (ES), Vulkan, EGL, Video4Linux e tinyalsa. Assim, uma implementação de produção pode substituir os drivers VirtIO e implementar essas interfaces com soluções específicas de hardware.
O SDV Media contém toda a funcionalidade do SDV Core, o que significa que ele tem a pilha de comunicação do SDV, usa o GKI e inclui todos os outros recursos do SDV.
Opções de integração
O restante desta página explica as duas opções de integração de mídia SDV.
Opção 1: baseada no host (recomendada)
Figura 2. Integração baseada no host.
A opção de integração baseada em host usa o VirtIO no guest para implementar a funcionalidade independente do hardware real. Os drivers específicos do hardware são integrados no lado do host e implementam dispositivos de acordo com a interface padronizada baseada em VirtIO para se comunicar com o convidado.
O desempenho depende da implementação do dispositivo e do driver do lado do host, mas os testes mostraram que o sistema pode alcançar alto desempenho e velocidade de inicialização.
Outro benefício dessa solução é que as imagens na infraestrutura e no hardware podem ser muito semelhantes, já que o convidado usa interfaces padronizadas. Isso leva a mudanças mínimas ou inexistentes para execução em dispositivos diferentes. A dependência de hardware é limitada ao host.
Opção 2: abstração da biblioteca do espaço do usuário
Figura 3. Abstração da biblioteca do espaço do usuário.
Nessa opção de integração, as interfaces padronizadas são as bibliotecas de espaço do usuário de baixo nível OpenGL (ES), Vulkan, EGL, Video4Linux e tinyalsa. O parceiro é responsável por orquestrar a divisão entre convidado e host, enquanto o desenvolvedor de apps é responsável por atender à compatibilidade com as interfaces da biblioteca de espaço do usuário.
Essa abordagem provavelmente leva a drivers diferentes em ambientes de infraestrutura e hardware, o que pode causar grandes diferenças no comportamento. Além disso, as imagens não podem ser transferidas sem adaptação a ambientes diferentes.
Essa abordagem é destinada a parceiros sem suporte total ao VirtIO.
Requisitos de mídia de SDV
Os requisitos de mídia SDV pressupõem que todos os requisitos principais de SDV foram atendidos. Isso pode ser feito usando a implementação de referência ou substituindo as bibliotecas do sistema por soluções específicas do fornecedor, conforme descrito nas seções anteriores.