Speaker
Description
GStreamer 1.0 is 14 years old now. It has served us well, but it carries a lot of historical baggage, and even though we have always managed to move forward, that has a cost: the default threading model uses far more threads than necessary, and the threadshare plugin has shown we can do much better, caps negotiation is left to each element, with base classes helping only so much, and is hard to debug on failures, the allocation query has its limitations and is serialized with the data flow, changing the pipeline topology while it is running is way too complex and error prone, everything is built on GObject, which newcomers have to understand first, making the GStreamer learning curve even steeper, and many details and design choices deserve a second look with all the experience we have gained since 1.0.
We have been saying "we'll fix that in 2.0" for years, and I think there is now a consensus in the community that it is time to start thinking about it
seriously: after years of collecting ideas, we start to have a view of where we want to go and we have been writing it down in a shared document, Rust has become the natural language the community is moving towards, with almost all newly written plugins in it, and several of us have started exploring what a new core could look like. This talk will present the research I have been doing on that subject and the APIs I have been experimenting with. All of this is very early stage, but I hope it can give us a basis for discussion.
The goal of the talk is to expose these ideas, see what people think, continue the discussion during the hackfest right after the conference, and hopefully start working on it together.
Speaker Bio
Thibault Saunier is a Senior Software Engineer at Igalia specializing in GStreamer. He maintains GStreamer Validate and the GStreamer Editing Services (GES) stack, among others, and has been a core contributor to GStreamer for 16 years.
| Duration of the talk | 20 minutes |
|---|
















