24.04.2024

Код поддержки кодека VP9 в V4L2 для чипов Hantro и Rockchip переписан на Rust

Дэниел Алмейда (Daniel Almeida), занимающийся развитием видеокодеков в компании Collabora, представил для обсуждения разработчиками ядра Linux новую реализацию прослойки для использования аппаратных декодировщиков видео в формате VP9 в подсистеме V4L2, применяемой для организации доступа устройствам видеозахвата, таким как web-камеры и TV-тюнеры. Код прослойки полностью переписан на языке Rust и ориентирован на работу с драйверами rkvdec и hantro, предоставляющими доступ к аппаратным средствам ускорения декодирования видео, доступным в чипах Rockchip и Hantro.

Код с реализацией поддержки VP9 для v4l2 занимает около 2000 строк. В качестве причины создание альтернативной реализации на языке Rust упоминается желание добиться дополнительного уровня защиты за счёт применения предоставляемых языком Rust средств для безопасной работы с памятью в коде, который содержит реализацию достаточно сложных алгоритмов и применяется для обработки данных, поступающих из пространства пользователя через интерфейс V4L2. Несмотря на то, что реализация на Rust пока имеет статус выставленного на обсуждение экспериментального прототипа, при тестировании пакетом Fluster, оценивающим соответствие декодировщиков эталонным спецификациям, версии на Си и Rust показали идентичные результаты.

Источник: https://www.opennet.ru/opennews/art.shtml?num=60682 Источник.