Категория: GNU/Linux


В линухе удобно и просто реализовано аппаратное ускорение! А флэш в линухе НЕ НУЖЕН. (с)

Mike Melanson, ведущий инженер Adobe по поддержке технологии Flash в операционных системах Unix/Linux, опубликовал в своем блоге серию сообщений о проблемах, с которыми компания столкнулась при реализации аппаратного ускорения декодирования и воспроизведения видео в Linux.

Первой проблемой является разнообразие и различный уровень реализации API работы с аппаратными ускорителями видеодекодирования в Linux, представленное на специальной иллюстрации:
http//nvworld.ru/files/news/adobe-flash-Linux-hw-acceleration/Linux-video-accel.png

Разработчикам приходится иметь дело по меньшей мере с тремя проприетарными API, каждый из которых поддерживает лишь оборудование одного вендора (AMD для XvBA, NVIDIA для VDPAU и Broadcom для CrystalHD), причем, например, для XvBA спецификации в открытом доступе отсутствуют. Заявленные же как «универсальные» API вроде VA на самом деле являются лишь программными прослойками ко всё тем же VDPAU и XvBA. Мало того, определенное распространение получило использование оборудования напрямую из программ или через API универсальных вычислений, такие как CUDA и OpenCL

Второй проблемой является отсутствие у имеющихся API ускорения декодирования и соответствующих драйверов оборудования функций по возврату полностью декодированных кадров приложению. В реализациях NVIDIA и AMD декодированный поток сразу уходит в устройство отображения, что может быть приемлемо для «чистых» проигрывателей мультимедиа, но неприемлемо для Flash, которому нужно объединять видео и прочие элементы веб-страницы в единое изображение. Проблема наглядно показана на иллюстрациях:

http//nvworld.ru/files/news/adobe-flash-Linux-hw-acceleration/video-flow.png
http//nvworld.ru/files/news/adobe-flash-Linux-hw-acceleration/flash-flow.png

При этом в среде Windows возможность возврата декодированного видеопотока приложению реализована.

На иллюстрациях видна и третья проблема ускорения видео Flash в Linux — необходимость конверсии цветового пространства YUV в RGB. В частности, именно поэтому невозможно использовать расширение Х-интерфейса Xv для вывода и масштабирования видео. Два года назад Adobe предпринимала попытку задействовать OpenGL для данных операций, но столкнулась с низким качеством реализации OpenGL во многих открытых драйверах видеокарт и невозможностью одновременного использования OpenGL для видео и набиравших популярность эффектов Compiz.

В результате, если на платформе Windows бета-версия Adobe Flash 10.1 с поддержкой аппаратного ускорения декодирования и воспроизведения видео в формате H.264 доступна уже несколько месяцев, Linux версия Flash-плагина по-прежнему использует лишь программное воспроизведение. Но Mike Melanson сообщает, что так или иначе работа над реализацией аппаратного ускорения Flash в Linux продолжается, и что Adobe рассчитывает на встречные движения разработчиков драйверов по реализации необходимых функций.

источник