LINUX.ORG.RU

Хардварное видео на RPi есть на Raspbian (Raspberry OS), а есть ли в других дистрах?

 , ,


0

3

Как многим известно, в Raspberry Pi установлен GPU модели VideoCore. Он умеет аппаратное ускорение видео. С самого начала на этих компьютерах был omxplayer, который воспроизводил видео быстро и плавно. Несколько лет назад, аппаратное декодирование видео добавили в VLC и Chromium (в хромиуме надо включить принудительно).

Я задумался, а будет ли работать аппаратное ускорение в других дистрибутивах Linux?

Наверное нет, ведь разработчики Raspbian OS сами патчили VLC и Chromium.

Но ведь это опенсорс, можно взять патчи из Raspberry OS, и наложить их в другом дистрибутиве!

Скачиваю исходники VLC:

mkdir vlc
apt-get source vlc

В каталоге vlc-3.0.8/debian/patches лежат патчи. Один из них - mmal_10.patch - это явно то, что нужно. Он занимает 400 килобайт, и он явно добавляет аппаратное ускорение MMAL.

Однако первые же строки кода заставили меня недоумевать:

--- a/configure.ac
+++ b/configure.ac
@@ -3420,6 +3420,9 @@
 AC_ARG_ENABLE(mmal,
   AS_HELP_STRING([--enable-mmal],
     [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
+AC_ARG_ENABLE(mmal_avcodec,
+  AS_HELP_STRING([--enable-mmal-avcodec],
+    [Use MMAL enabled avcodec libs (default disable)]))
 if test "${enable_mmal}" != "no"; then
   VLC_SAVE_FLAGS
   LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
@@ -3430,7 +3433,7 @@
         VLC_ADD_PLUGIN([mmal])
         VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
         VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
-        VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif ]) ], [
+        VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif -lvchiq_arm -lvcsm ]) ], [
           AS_IF([test "${enable_mmal}" = "yes"],
             [ AC_MSG_ERROR([Cannot find bcm library...]) ],
             [ AC_MSG_WARN([Cannot find bcm library...]) ])
@@ -3442,6 +3445,7 @@
   VLC_RESTORE_FLAGS
 fi
 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
+AM_CONDITIONAL([HAVE_MMAL_AVCODEC], [test "${enable_mmal_avcodec}" = "yes"])
 
 dnl
 dnl evas plugin

Почему в оригинальном, не патченном исходнике, уже есть путь /opt/vc/lib? Эта директория специфична именно для устройств под управлением Raspberry Pi. Выглядит так, как будто разработчики Raspberry OS патчили исходники напрямую, а не добавляли изменения патчами в vlc-3.0.8/debian/patches. Хотя размер патча mmal_10.patch (400 Кб) говорит об обратном.

Ты же сам можешь найти ответ на свой вопрос. Проследуй на гит vlc и проверь идентичность исходников. Если там есть /opt/vc/lib, найди коммит, в котором это было добавлено и ознакомься с ним.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Вон оно что. Спасибо. Теперь я смогу собрать VLC и Chromium с поддержкой аппаратного ускорения на RPi в Дебиане и Убунте!

ZenitharChampion ★★★★★
() автор топика

А в этот ваш хвалёный mpv аппаратное декодирование не впилили?

Пётр

anonymous
()

Почему в оригинальном уже есть

может поэтому? if test "${enable_mmal}" != "no"; then

это подобие api но для подключения патчей
без этого мало кто решится лезть в чужой огород со своими тракторами
мне кажется это просто этика

nanosecond
()
Последнее исправление: nanosecond (всего исправлений: 5)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.