Pull to refresh

Comments 6

Спасибо за статью
Тоже буквально на днях начал ковыряться с dispmanx и столкнулся с отсутствием даже описаний его API. Фактически, есть только примеры на гитхабе по выводу png или просто рисованию пикселов.
Передо мной же задача отрисовывать текстовый слой и не понятно, если ли в api какие-нибудь встроенные средства для этого, поскольку примеров с текстом нет. В голову приходит пока переводить текст в png через imagemagick, но высока вероятность изобрести велосипед.
Сомневаюсь, что работа с текстом вообще существуют.
Скорее нет.
Нужно рисовать пиксели в битмапе и уже его выводить в слой DispmanX.
На самом деле, хорошенько подумайте, нужно ли Вам связываться с DispmanX вообще.
DispmanX интересен сам по себе и имеет богатые возможности, НО -главный минус это абсолютная непереносимость кода на другие платформы.
К примеру, захотите перейти на другой одноплатник, OrangePi или Rock64 и все, код работаеть не будет.
Используйте X11 для реализации прозрачности.
Например, вот: stackoverflow.com/questions/39906128/how-to-create-semi-transparent-white-window-in-xlib
Получится код, который работает везде.
В моем случае мне нужен OSD, который работает поверх видеострима с omxplayer. Насколько мне известно, в orange pi gpu не broadcom, а mali, драйвера к которому закрыты и акселерация видео работает разве что на андроид, и то не факт. Так что переносимость меня не волнует, а ставить иксы только ради OSD как-то странно.
Понятно.
На оранже действительно были проблемы с аппаратным декодеком видео. Сейчас не знаю починили это или нет.
Но вот на Rock64 работает и аппаратный декодек и нормальный OpenGLESv2 на Mali450, так что можно смешивание слоев делать через более стандартный АПИ gstreamer+OpenGLESv2.

Кстати, видеоплеер для распберри можно написать с использованием библиотеки gstreamer и к gstreamer можно написать свой appsink который будет принимать I420.
Что интересно, так как DispmanX слой может быть YUV с форматом I420. И это хорошо, так как не требуется перекодировать YUV в RGB, экономится процессор.
Я это писал и работает.
Кстати, на распберри Pi4 уже есть нормальный OpenGLESv3.
Так, что слои можно реализовывать через стандартный OpenGLES. Так вы убережете себя от проблем переносимости в будущем.
И вот моя статья про видео плеер на Pi4 работающий через OpenGLES
habr.com/ru/users/nckma/posts
UFO just landed and posted this here
Sign up to leave a comment.

Articles