Daniel Almeida, zajmujący się rozwojem kodeków wideo w firmie Collabora, zaprezentował nową implementację warstwy do użycia sprzętowych dekoderów wideo VP9 w subsystemie V4L2, stosowanym do umożliwienia dostępu urządzeniom do przechwytywania wideo, takim jak kamery internetowe i tunery telewizyjne. Kod warstwy został całkowicie przepisany w języku Rust i jest ukierunkowany na współpracę z driverami rkvdec i hantro, które zapewniają dostęp do sprzętowych zasobów przyspieszających dekodowanie wideo dostępnych w chipach Rockchip i Hantro.
Kod z implementacją wsparcia VP9 dla v4l2 zajmuje około 2000 linii. Powód stworzenia alternatywnej implementacji w języku Rust to chęć uzyskania dodatkowego poziomu ochrony dzięki wykorzystaniu udostępnionych przez Rust narzędzi do bezpiecznej pracy z pamięcią w kodzie, który zawiera implementację stosunkowo złożonych algorytmów i jest używany do przetwarzania danych napływających z przestrzeni użytkownika przez interfejs V4L2. Mimo że implementacja w Rust na razie ma status projektowanej prototypu i jest przedmiotem dyskusji, testując pakietem Fluster, oceniającym zgodność dekoderów z referencyjnymi specyfikacjami, wersje w C i Rust wykazały identyczne wyniki.
Źródło: opennet.ru
