We're hiring!
*

Thoughts on PipeWire 1.0 and beyond

George Kiagiadakis avatar

George Kiagiadakis
December 06, 2023

Share this post:

Reading time:

PipeWire 1.0 was released last week. This is a major milestone in a long journey that I had the opportunity to be a part of and I am grateful for it.

For me it all started in 2018, when rumours about PipeWire being a possible successor to PulseAudio had started circulating. At the time I was working on a project that was using PulseAudio in an odd way and I wanted to explore other solutions. Coincidentally, the first PipeWire hackfest was announced during that summer, to be held in October, and I signed up for it without hesitation. The rest is history.

Thanks to a strong collaboration with Automotive Grade Linux (AGL), WirePlumber was born shortly afterwards. It was clear to me at the time, and still is, that PipeWire has strong potential to solve problems outside the scope of the Linux desktop, and WirePlumber is a key component to materialize these solutions. By being the orchestrator behind PipeWire’s graph, it was designed to be able to customize the behaviour of the entire system so that it can address different use cases, such as the ones in the automotive realm.

The 1.0 release now marks a point where we can confidently say that PipeWire is here to stay. But of course it is not the end of the journey. There are many new areas to explore going forward, especially in WirePlumber and the ecosystem that builds around PipeWire. Starting with WirePlumber 0.5, which is very close to a release now, it will be possible to build more complex policies and customizations with less overhead and easier maintenance. This is something that I’ve been excited about for a long time.

I am also eager to see more integration around video use cases. PipeWire is known to be the tool to access system cameras and screencast sources, but its utilization in these use cases is still primitive. I would love to see, for example, transparent video filters that change your background in video calls effectively and efficiently, not having to rely on the call applications to do that. And this is just a simple example, I think that there is potential to see much more interesting integrations, combining complex graphics and machine vision with PipeWire’s powerful architecture.

On that front, I am also keen to see the outcome of the GSoC project that I mentored last summer (2023). The project was about creating a video converter filter, using Vulkan, that would allow us to transparently link video ports that provide or consume video in different pixel formats and resolutions. The project completed with a working demo, but making that more widely available requires more polishing; mainly because Vulkan does not work on all systems and we need to add better detection and fallbacks, so that existing functionality does not break.

All in all, I believe that with PipeWire 1.0 being out of the door, a lot of exciting new things are coming. Looking forward to it!


Visit George's blog.

Comments (0)


Add a Comment






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


Search the newsroom

Latest Blog Posts

Re-converging control flow on NVIDIA GPUs - What went wrong, and how we fixed it

25/04/2024

While I managed to land support for two extensions, implementing control flow re-convergence in NVK did not go as planned. This is the story…

Automatic regression handling and reporting for the Linux Kernel

14/03/2024

In continuation with our series about Kernel Integration we'll go into more detail about how regression detection, processing, and tracking…

Almost a fully open-source boot chain for Rockchip's RK3588!

21/02/2024

Now included in our Debian images & available via our GitLab, you can build a complete, working BL31 (Boot Loader stage 3.1), and replace…

What's the latest with WirePlumber?

19/02/2024

Back in 2022, after a series of issues were found in its design, I made the call to rework some of WirePlumber's fundamentals in order to…

DRM-CI: A GitLab-CI pipeline for Linux kernel testing

08/02/2024

Continuing our Kernel Integration series, we're excited to introduce DRM-CI, a groundbreaking solution that enables developers to test their…

Persian Rug, Part 4 - The limitations of proxies

23/01/2024

This is the fourth and final part in a series on persian-rug, a Rust crate for interconnected objects. We've touched on the two big limitations:…

Open Since 2005 logo

We use cookies on this website to ensure that you get the best experience. By continuing to use this website you are consenting to the use of these cookies. To find out more please follow this link.

Collabora Ltd © 2005-2024. All rights reserved. Privacy Notice. Sitemap.