Daniel Almeida, que trabalha no desenvolvimento de codecs de vídeo na Collabora, apresentou aos desenvolvedores do núcleo Linux uma nova implementação de camada para o uso de decodificadores de vídeo VP9 em V4L2, que é utilizada para acessar dispositivos de captura de vídeo, como webcams e sintonizadores de TV. O código da camada foi totalmente reescrito em Rust e foi projetado para trabalhar com os drivers rkvdec e hantro, que fornecem acesso aos recursos de aceleração de decodificação de vídeo disponíveis nos chips Rockchip e Hantro.
O código com a implementação do suporte ao VP9 para v4l2 ocupa cerca de 2000 linhas. A razão para a criação de uma implementação alternativa em Rust é o desejo de alcançar um nível adicional de segurança através dos recursos de segurança de memória que a linguagem Rust oferece, em um código que contém algoritmos suficientemente complexos e é usado para processar dados provenientes do espaço do usuário através da interface V4L2. Embora a implementação em Rust ainda tenha o status de um protótipo experimental apresentado para discussão, durante os testes com o pacote Fluster, que avalia a conformidade dos decodificadores com as especificações de referência, as versões em C e Rust mostraram resultados idênticos.
Fonte: opennet.ru
