We're hiring!
*

Quick notes from the GStreamer Spring Hackfest 2025

Olivier Crête avatar

Olivier Crête
July 15, 2025

Share this post:

Reading time:

Every year, in addition to the Fall conference, the core GStreamer community meets for a Spring hackfest. This year, the community decided to do it right after the libcamera and PipeWire hackfests to foster more coordination between the projects. This completed a strong week in Nice, France, that began with the Linux Media Summit and Embedded Recipes. The hackfest was an occasion to advance various topics that were languishing and to bring the state of the art forward.


The topic of the hour for our team has been the integration of AI/ML workflows in GStreamer. I completed, and finally merged, the plugin to use the LifeRT (formerly TensorFlow Lite) framework, as it is a popular framework for embedded systems. It has been living in a branch for over a year and I'm really happy that it is finally in. One big feature that we added compared to the existing ONNX-Runtime plugin is the addition of a .modelinfo file. It adds metadata not provided by the model. The first part is adding information about the offset and scale (also called mean and standard deviation) to apply to the inputs to the model. But, the most important of those being a name for each tensor, allowing us to prepare the field for auto-plugging the model specific, but framework agnostic, tensor decoders elements. On that topic, Daniel Morin worked hard to improve his new plugin which will automatically select and use the right plugin to decode the tensors into usable information. He's been focusing on the description of the tensors in the caps.

We also had a discussion on the best way to integrate information on tensor pre-processing the caps, this way, such pre-processing could be offloaded to an element before the inference element, for example, combining with a colorspace conversion step. We've decided that we can try to extend the GstVideoInfo API instead of pushing the information outside of the caps.


Bridging AI and PipeWire, Julian Bouzas has been working on Silhouette, an application to create a virtual camera applying a background removal filter to the input from real camera. We've discussed the various challenges faced to integrate GStreamer into a low latency PipeWire pipeline.

Jakub Adam worked on improving DMABuf support within video4linux2 plugin and debugged issues occurring on dynamic caps renegotiation. Turns out proper handling of dynamic pipelines will require more refactoring of how GStreamer deals with V4L2 memory. Jakub and Nicolas Dufresne discussed the needed changes in V4L2 allocator and buffer pool.

On the whole, it was a busy weekend for the community and for Collabora's GStreamer team, and it has already resulted in many thousands of lines of new code landing! With GStreamer 1.27.1 released last week, we are now making our way to the next stable release (1.28), which should be made available by the end of the year. Take a look at this article if you would like to get a glimpse at what's planned for 1.28.

Comments (0)


Add a Comment






Allowed tags: <b><i><br>Add a new comment:


Search the newsroom

Latest Blog Posts

Now streaming: Collabora’s XDC 2025 presentations

02/12/2025

As an active member of the freedesktop community, Collabora was busy at XDC 2025. Our graphics team delivered five talks, helped out in…

Implementing Bluetooth LE Audio & Auracast on Linux systems

24/11/2025

LE Audio introduces a modern, low-power, low-latency Bluetooth® audio architecture that overcomes the limitations of classic Bluetooth®…

Strengthening KernelCI: New architecture, storage, and integrations

17/11/2025

Collabora’s long-term leadership in KernelCI has delivered a completely revamped architecture, new tooling, stronger infrastructure, and…

Font recognition reimagined with FasterViT-2

11/11/2025

Collabora extended the AdobeVFR dataset and trained a FasterViT-2 font recognition model on millions of samples. The result is a state-of-the-art…

Expanding access to XR: Google Cardboard comes to Monado

31/10/2025

Collabora has advanced Monado's accessibility by making the OpenXR runtime supported by Google Cardboard and similar mobile VR viewers so…

From browsers to better drivers: Fixing Zink synchronization the hard way

27/10/2025

By resolving critical synchronization bugs in Zink’s Vulkan–OpenGL interop, Faith Ekstrand paved the way for Zink+NVK to become the default…

Open Since 2005 logo

Our website only uses a strictly necessary session cookie provided by our CMS system. To find out more please follow this link.

Collabora Limited © 2005-2025. All rights reserved. Privacy Notice. Sitemap.