Check out our Monthly Survey Page to see what our users are running.
We do often include affiliate links to earn us some pennies. See more here.

While GStreamer may not be something that generates a lot of headlines, it's a much loved and well-used bit of open source tech for handling media on Linux and many other systems and it just got a big funding boost from the Sovereign Tech Fund.

The announcement today from the STF mentions they're investing €203,000 in the project via Centricular, a company that specialises in working on open source software. 

What are they actually funding:

STF has commissioned work from Centricular to enhance the GStreamer multimedia framework by implementing critical components in Rust for improved security, maintainability, and sustainability. These include RTCP parsing, RTP session handling, real-time communication enhancements, and comprehensive support for audio and video formats, ensuring GStreamer's continued versatility and compatibility across a range of applications.

  1. Re-writing Foundational GStreamer Components in Rust
    • Real-Time Control Protocol (RTCP) Parsing and Real-Time Transport Protocol (RTP) Session Handling.
    • RTP/AVPF profile support.
  2. Real-Time Communication Enhancements
    • GStreamer RTP Jitterbuffer and Synchronization in Rust.
  3. Comprehensive Audio and Video Support
    • RTP Payloaders and Depayloaders in Rust for basic audio and video formats.
    • Including RTP support for H.264, H.265, VP8, VP9, and container/meta formats.
  4. Re-writing Real-Time Streaming Protocol (RTSP) Handling in Rust
    • GStreamer RTSP protocol client element in Rust, focusing on essential features, live playback, and RTSP 1.0 support

Check out the announcement for more info.

Who are the STF? From the website: "The Sovereign Tech Fund started in October 2022 and is financed by the German Federal Ministry for Economic Affairs and Climate Action. It is currently incubated at SPRIND GmbH". They also announced funding for GNOME late last year.

Article taken from GamingOnLinux.com.
Tags: Misc, Open Source
23 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. Find me on Mastodon.
See more from me
18 comments
Page: 1/2»
  Go to:

One problem with working for the Sovereign Tech Fund is that insistence on paying in Sovereigns. Bags of coins in this day and age . . .
F.Ultra Jan 17
View PC info
  • Supporter
Quoting: Purple Library GuyOne problem with working for the Sovereign Tech Fund is that insistence on paying in Sovereigns. Bags of coins in this day and age . . .

Considering that 1 Sovereign coin is worth aprox £400 I think they would be quite happy :)
Let's see, at the current exchange rate £400 = €468, so €203,000/€468 ≈ 433.8 Sovereigns. Sounds like a good bag or two to me!
I totally misunderstood "GStreamer"...... I had all these dollar bills ready to go as well.....
TheSHEEEP Jan 17
View PC info
  • Supporter Plus
Honestly not a big fan of Rust.

It makes writing code ridiculously complicated, everything needs awkwardly added function calls (want a variable? Here you go "variable.wrap().unwrap().rewrap().is_this_safe()?.unwrap_or_else(|..| yes_no?).expect('oh no!') ") and just leads to code that is practically unintelligible unless you understand everything about Rust.
I once couldn't stop laughing when I made a string copy, it's like trying to thread a needle, but with both hands tied behind your back to make sure you won't accidentally poke yourself.

However, its modularity and concurrency safety while maintaining C-like speed is indeed quite well suited to a project like that.
Can't say I blame them.

Oh, and the error messages in Rust are pure magic, very helpful compiler.


Last edited by TheSHEEEP on 17 January 2024 at 9:17 pm UTC
mattaraxia Jan 18
Quoting: TheSHEEEPHonestly not a big fan of Rust.

It makes writing code ridiculously complicated, everything needs awkwardly added function calls (want a variable? Here you go "variable.wrap().unwrap().rewrap().is_this_safe()?.unwrap_or_else(|..| yes_no?).expect('oh no!') ") and just leads to code that is practically unintelligible unless you understand everything about Rust.
I once couldn't stop laughing when I made a string copy, it's like trying to thread a needle, but with both hands tied behind your back to make sure you won't accidentally poke yourself.

However, its modularity and concurrency safety while maintaining C-like speed is indeed quite well suited to a project like that.
Can't say I blame them.

Oh, and the error messages in Rust are pure magic, very helpful compiler.

Heh, I laughed surprisingly hard at that first part. I had really similar feelings while learning Rust, though after a while I wrote most of it off as just not-the-way-I'm-used-to-itis.

In addition to those features you mentioned, its easy compatibility with C code that makes it the future. It's (relatively) easy to do things like this, rewriting old parts of a large, mature code base like gstreamer, that seem to have cemented its future. I guess way more of this will keep happening in the next few years.
TheSHEEEP Jan 18
View PC info
  • Supporter Plus
Quoting: mattaraxiaHeh, I laughed surprisingly hard at that first part. I had really similar feelings while learning Rust, though after a while I wrote most of it off as just not-the-way-I'm-used-to-itis.
Of course you can get used to it and understand it.
Hell, you can get used to abominations like Objective-C. Which Rust thankfully isn't as bad as.

But there are just objectively much harder to parse languages (as in, read and understood even by uninitiated people). Due more complex structures in Rust code than you'd find in C-code.
C++ can get nightmarish to parse on its own, but more rarely so and in cases that can usually be auto'd away nowadays. And pure C code is just very simple to read as it "lacks" (I've grown to think it's a feature) all the bells and whistles of C++.

With Rust, you get a lot more special characters (&|*::<>?!..'+) throughout the entire code outside of calculations, more function calls per thing you want to do and once type specifiers and lifetimes come into play, all hope is lost to the uninitiated anyway ( what's this type do, why is there a ': "Box<Fn() + Send + 'static>" ).

It's not that it couldn't be understood, it's that it couldn't be understood quickly except by experts.
And if I have learned one thing in 15+ years of coding, it's that the most important attribute of code after "it works" is that it is easily readable to people new-ish to the project and/or the language.
Because code is hundreds to thousands of times more often read than written and lack of understanding leads to way more problems down the line.


Last edited by TheSHEEEP on 18 January 2024 at 7:40 am UTC
Adutchman Jan 18
Quoting: TheSHEEEPHonestly not a big fan of Rust.

It makes writing code ridiculously complicated, everything needs awkwardly added function calls (want a variable? Here you go "variable.wrap().unwrap().rewrap().is_this_safe()?.unwrap_or_else(|..| yes_no?).expect('oh no!') ") and just leads to code that is practically unintelligible unless you understand everything about Rust.
I once couldn't stop laughing when I made a string copy, it's like trying to thread a needle, but with both hands tied behind your back to make sure you won't accidentally poke yourself.

However, its modularity and concurrency safety while maintaining C-like speed is indeed quite well suited to a project like that.
Can't say I blame them.

Oh, and the error messages in Rust are pure magic, very helpful compiler.

That's not how you write actual Rust code though: most of the time, you use constructions like `let Ok(var) = ` or variable?. The sbippet you showed looks like you haven't really looked at how to write actual Rust and just tried to write C in Rust which doesn't work. I also used to write Rust like that, but when I watched this video it clicked a lot more. In other words, Rust seems more messy at first but it has has a lot of ways to make code more readable. And yes, it does take longer to get used to, I struggled at the beginnijg as well. It is a trade-off: Rust surfaces complexity in syntax, while others hide it. This is why Rust can be so fast, secure and stable. The errors you need to handle in Rust are also ones that can happen in other languages, they just hide that complexity and crash when something like that happens. These are languages like C or Python. There's a place for both, but Rust is a really good language to use for fundamental libraries like Gstreamer because of these properties.
TheSHEEEP Jan 18
View PC info
  • Supporter Plus
Quoting: AdutchmanThe sbippet you showed looks like you haven't really looked at how to write actual Rust and just tried to write C in Rust which doesn't work.
Not at all. I know Rust and been working with it on and off in projects. I wouldn't consider myself an expert, but I can work with it just fine.
Obviously I exaggerated in that example, but you'll find code akin to that in every single project, simply because of how Rust works. Rust's safety comes at a hefty cost.
There's just no denying that, at least not if you are being honest.

I am in the nice position that I work on many projects with many languages and many people of different levels of knowledge in the languages, so I have the advantage of not being too tunnel-visioned when it comes to a single language that I couldn't see its downsides anymore.


Last edited by TheSHEEEP on 18 January 2024 at 8:56 am UTC
Arehandoro Jan 18
Quoting: F.Ultra
Quoting: Purple Library GuyOne problem with working for the Sovereign Tech Fund is that insistence on paying in Sovereigns. Bags of coins in this day and age . . .

Considering that 1 Sovereign coin is worth aprox £400 I think they would be quite happy :)

Much better that kind of Sovereign than the Mass Effect's one
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.