Multimedia-Framework: GStreamer 1.20 bündelt seine Komponenten in ein Monorepo
Das erweiterbare Multimedia-Framework besteht aus einer 500 KByte kleinen Core Library sowie verschiedenen Modulen. Nun erhält es ein GitLab-Monorepo.
![](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/3/2/7/0/8/5/1/shutterstock_1803009241.jpg-221998c9bbb1a2ea.jpeg)
(Bild: Peeravit/Shutterstock.com)
GStreamer ist in Version 1.20 erschienen. Das unter dem Dach von freedesktop.org entwickelte quelloffene Multimedia-Framework dient dem Erstellen von Streaming-Medienanwendungen. Es ist modular aufgebaut und lässt sich unter Linux, Windows, macOS, iOS und Android nutzen. Das Feature Release 1.20 bringt neue Funktionen wie die High-Level-Playback-Bibliothek GstPlay und verfolgt nun das Monorepo-Prinzip.
Vereint im Monorepo
Das Open-Source-Framework GStreamer besteht aus einem Set von Bibliotheken und Plug-ins, die sich auf verschiedene, einzeln veröffentlichte Module aufteilen. Deren Entwicklung fand bisher in separaten Git-Repositorys unter freedesktop.org GitLab statt – im Jahr 2018 hatte sich freedesktop.org für GitLab entschieden. Für den Download- und Build-Prozess stand ein gst-build-Modul unter Verwendung des Build-Systems Meson zur Verfügung.
Mit Version 1.20 bündelt das GStreamer-Team alle Module in einem einzigen Repository, das im neuen main-Branch zu finden ist. Es soll Entwicklungs-Workflows und Continuous Integration vereinfachen und sich besonders bei gleichzeitigen Änderungen an mehreren Modulen positiv auswirken. Einzig die Rust-Bindings und -Plug-ins haben noch keinen Einzug in das Monorepo gehalten, da sie einem anderen Releasezyklus folgen.
Weitere Neuerungen
GStreamer 1.20 bringt die neue High-Level-Playback-Bibliothek GstPlay mit, um die ältere GstPlayer-API zu ersetzen. Diese soll in Zukunft eine Markierung als deprecated (veraltet) erhalten und zu einem späteren Zeitpunkt – möglicherweise in GStreamer 1.24 – entfallen. Das GStreamer-Team empfiehlt Entwicklerinnen und Entwicklern daher, frühzeitig zur neuen API zu migrieren.
Neben weiteren Neuerungen sind einige neue Rust-Plug-ins an Bord, darunter audiornnoise zum Entfernen von Rauschen aus einem Audiostream und ccdetect zum Erkennen gültiger geschlossener Untertitel (Closed Captions).
Schlank und erweiterbar
Das in der Programmiersprache C geschriebene Multimedia-Framework GStreamer basiert auf dem GLib-2.0-Objektmodell GObject und besitzt eine weniger als 500 KByte große Core Library mit etwa 65.000 Codezeilen. Es stellt eine stabile API für Plug-in- und Anwendungsentwickler bereit und lässt sich mittels Plug-ins um weitere Funktionen erweitern. Zudem soll es eine hohe Performance und eine geringe Latenz an den Tag legen und hat ein komplettes Debugging-System mit an Bord.
GStreamer lässt sich unter Linux mithilfe eines Paketmanagers installieren. Für macOS, Windows, Android und iOS stehen Binärpakete bereit. Grundlegende sowie Android- und iOS-spezifische Anwendungsfälle sind in Tutorials abgedeckt, die in C geschrieben sind.
Alle neuen Features in GStreamer 1.20 sind den offiziellen Release Notes zu entnehmen.
(mai)