Open Source Multimedia

Viele Embedded-Linux-Systeme im Bereich „Bedienen & Beobachten“ haben eine moderne grafische Oberfläche, z.B. mit Touchscreen (kapazitiv, resistiv) und Gestenbedienung, oder realisieren Video-Features. Die kernelseitigen Frameworks werden dabei durch Frameworks im Userspace ergänzt:

  • DRM: Kernel-Support für synchronisierte Grafikkarten mit Planes
  • V4L2: Kernel-Support für Streaming Media, Kameras, Codecs
  • GUI: Qt5/QML, Web-Browser mit OpenGL-Beschleunigung
  • Media-Frameworks: GStreamer, PulseAudio

Auf der Anwendungsseite nutzen unsere Kunden dabei Frameworks wie Qt oder auch Web-Browser, die an die Gegebenheiten von Embedded Systemen angepasst sind (keine Fenster-Dekorationen, optimale Ausnutzung der bestmöglichen Hardwarebeschleunigung) und die aufgrund des Nachvollzugs meist mit Yocto oder PTXdist ins System integriert sind.

Streaming-Media-Entwicklung

Das Pengutronix-Grafikteam entwickelt im Kundenauftrag Kerneltreiber für Streaming-Media-Komponenten, erweitert die bestehenden Kernel-Frameworks um neue Funktionalität und schreibt umfangreiche und komplexe Media Pipelines in GStreamer. Dabei steht die Performance-Optimierung oft im Mittelpunkt. Ziel der Entwicklung ist für gewöhnlich ein „Erweiterter Prototyp“, auf dessen Basis der Kunde seine eigene Applikation schreiben kann.

3D-Grafiktreiber

Die Unterstützung von komplexen 3D-Grafik-Kernen ist eine weitere Aufgabe für unser Grafikteam. Dabei entstehen DRM-Treiber im Kernel, Gallium-Treiber in MESA, Anpassungen an Wayland/Weston sowie weitere Komponenten. Unser Schwerpunkt liegt auf der vollständigen Unterstützung der jeweiligen Hardware in den Upstream-Projekten.

Ein Beispiel ist Etnaviv, der Open Source Treiber für die 3D-Grafik auf z.B. i.MX6, i.MX8 und STM32MP1 SoCs, für den wir die Maintenance im Kernel übernommen haben. Offene Software macht es hier möglich, auch hartnäckige Bugs und Performance-Engpässe nachhaltig zu beheben.