Daniel Almeida, der sich bei Collabora mit der Entwicklung von Videocodecs beschäftigt, präsentierte Entwicklern des Linux-Kernels eine neue Implementierung einer Schicht zur Nutzung von Hardware-Video-Decodern im VP9-Format innerhalb des V4L2-Subsystems. Dieses wird zur Ermöglichung des Zugriffs auf Audio- und Videoerfassungsgeräte eingesetzt, wie z.B. Webkameras und TV-Tuner. Der Code der Schicht wurde komplett in Rust neu geschrieben und ist auf die Arbeit mit den Treibern rkvdec und hantro ausgerichtet, die den Zugriff auf die in den Rockchip- und Hantro-Chips vorhandenen Hardware-Beschleunigungsmittel für die Video-Decodierung ermöglichen.
Der Code zur Implementierung der VP9-Unterstützung für v4l2 umfasst etwa 2000 Zeilen. Als Grund für die Erstellung einer alternativen Implementierung in der Programmiersprache Rust wird der Wunsch genannt, durch die Verwendung der Sicherheitsfunktionen von Rust ein zusätzliches Schutzniveau zu erreichen, insbesondere in einem Code, der komplexe Algorithmen implementiert und zur Verarbeitung von Daten verwendet wird, die über die V4L2-Schnittstelle aus dem Benutzerraum kommen. Obwohl die Implementierung in Rust derzeit den Status eines zur Diskussion gestellten Experimentierprototyps hat, zeigten Testläufe mit dem Fluster-Paket, das die Übereinstimmung von Decodierern mit den Referenzspezifikationen bewertet, identische Ergebnisse für die Versionen in C und Rust.
Quelle: opennet.ru
