Nicolas Dufresne
June 23, 2025
Reading time:
Last month in Nice, active media developers came together for the annual Linux Media Summit to exchange insights and tackle ongoing challenges in the media subsystem. The event, co-located for the first time with Embedded Recipes, was co-sponsored by Cisco and Collabora.
![]() |
Our largest Media Summit to date brought together around 20 engaged participants. Engagement was strong, marked by thoughtful questions and lively discussions. Here’s a brief summary of the key topics that were discussed, and upcoming areas of focus.
We kicked of the summit with a discussion on codecs, and reviewed the progress so far on encoder development. We explored a hybrid approach—stateless encoding using compound controls and requests, paired with a stateful rate controller implemented in the kernel. The idea is to have a shared C implementation across drivers, with the potential to extend it using eBPF in the future, while always offering a fixed per-frame control to applications. The proposal sparked a lot of questions, but overall, it was well-received, with attendees sharing similar experiences and use cases involving eBPF.
There is definitely a lot of work to be done with the camera infrastructure, as it is overly complex, to say the least. Some stacks have over 50 different driver nodes and drivers! We discussed some of the challenges of coordinating all of this, including using dynamic array control to manage hardware links that have multiple streams in them (i.e. MIPI, FDP). There was also a proposal made for a userspace DB to identify camera modules. Lastly, some concerns were addressed over ambiguous APIs with inconsistent driver implementations.
Once again, we had a good discussion about the future of all these drivers that have been sitting in stagings for years. The staging area has always been a place to allow rapid development and collaboration. Unfortunately however, some projects end up being abandoned, and in practice, these drivers stay there for a long time, whether they are used or not. There are no simple black and white answers on how to handle these, so we went through the list and discussed how to proceed with each of them. Announcements will be made before any archiving or removal.
![]() |
Maxime Ripard, who is usually mostly involved in the graphics side of things, joined us to discuss memory accounting to prevent infinite allocations in DRM/V4L2. Essentially, if you're working with a graphics or V4L2 driver, there's currently no real limit on memory allocation (so it's "infinite"). Memory allocations aren't properly tracked, and even if you set constraints using cgroups, they can be bypassed. To address this, he developed an implementation and presented the necessary changes for V4L. The proposed updates were well-received, and fairly straightforward. Much like in DRM, V4L centralizes most of its memory allocation, ultimately relying on the DMA API. That centralization makes the changes more manageable and helps improve both driver robustness and sandboxing safety. It’s great to see this moving forward.
We also discussed the idea of having PipeWire handle hardware decoding for sandboxed apps, however that approach is limited as it does not cover virtual machine use cases. We also need better Flatpak solutions for V4L2 decoders.
The last discussion of the day was a status update on the multi-committer model, which involves transitioning from the somewhat secretive PRs, to merge requests (MRs) for transparency and better scaling. Hans and Mauro have been testing the CI for this, and working with Ricardo to tune it up. It's all in very good shape, just need to finish some documentation so everything is written down before formalizing the process.
Overall, this summit showed a live and healthy subsystem with a clear focus on continuous improvement, especially in the areas of collaboration and scalability. Face-to-face meetings like this one help build connections and foster cohesion among developers, making it possible for different companies to work together toward compatible goals. A great example of that shared commitment this year is the ongoing, collaborative effort to support on chip camera ISP pipelines and video encoders.
23/06/2025
Last month in Nice, active media developers came together for the annual Linux Media Summit to exchange insights and tackle ongoing challenges…
09/06/2025
In this final article based on Matt Godbolt's talk on making APIs easy to use and hard to misuse, I will discuss locking, an area where…
21/05/2025
In this second article of a three-part series, I look at how Matt Godbolt uses modern C++ features to try to protect against misusing an…
12/05/2025
Powerful video analytics pipelines are easy to make when you're well-equipped. Combining GStreamer and Machine Learning frameworks are the…
06/05/2025
Gustavo Noronha helps break down C++ and shows how that knowledge can open up new possibilities with Rust.
29/04/2025
Configuring WirePlumber on embedded Linux systems can be somewhat confusing. We take a moment to demystify this process for a particular…
Comments (0)
Add a Comment