Over the Easter holidays I spent some time on a little experiment: How hard is it to build a GStreamer plugin in Rust with meson instead of using the default Rust build system cargo? meson is a community-developed, open-source, cross-platform (including Windows), multi-language build system that is supposed to be fast and easy to use. Continue reading Building a GStreamer plugin in Rust with meson…
Over the last few weeks, GStreamer s RTP stack got a couple of new and quite useful features. As it is difficult to configure, mostly because there being so many different possible configurations, I decided to write about this a bit with some example code. The features are RFC 6051-style rapid synchronization of RTP streams, which Continue reading Instantaneous RTP synchronization retrieval of…
This blog post is part two of a four part series Overview, summary and motivation Porting approach with various details, examples and problems I ran into along the way Performance optimizations Building Rust code into a C library as drop-in replacement In this part I ll go through the actual porting process of the libebur128 C Continue reading Porting EBU R128 audio loudness analysis from C to…
Over the last few weeks I ported the libebur128 C library to Rust, both with a proper Rust API as well as a 100% compatible C API. This blog post will be split into 4 parts that will be published over the next weeks Overview and motivation Porting approach with various details, examples and problems Continue reading Porting EBU R128 audio loudness analysis from C to Rust
A very common problem in GStreamer, especially when working with live network streams, is that the source might just fail at some point. Your own network might have problems, the source of the stream might have problems, Without any special handling of such situations, the default behaviour in GStreamer is to simply report an Continue reading Automatic retry on error and fallback stream handling…
It has been quite a while since the last status update for the GStreamer Rust bindings and the GStreamer Rust plugins, so the new releases last week make for a good opportunity to do so now. Bindings I won t write too much about the bindings this time. The latest version as of now is 0.16.1, Continue reading GStreamer Rust Bindings Plugins New Releases
A few months ago I wrote a new GStreamer plugin: an audio filter for live loudness normalization and automatic gain control. The plugin can be found as part of the GStreamer Rust plugin in the audiofx plugin. It s also included in the recent 0.6.0 release of the GStreamer Rust plugins and available from crates.io. Its Continue reading Live loudness normalization in GStreamer experiences with…
When talking to various people at conferences in the last year or at conferences, a recurring topic was that they believed that the GTK Rust bindings are not ready for use yet. I don t know where that perception comes from but if it was true, there wouldn t have been applications like Fractal, Podcasts or Shortwave Continue reading The GTK Rust bindings are not ready yet? Yes they are!
A very common question that comes up on IRC or elsewhere by people trying to use the gtk-rs GTK bindings in Rust is how to modify UI state, or more specifically GTK widgets, from another thread. Due to GTK only allowing access to its UI state from the main thread and Rust actually enforcing this, Continue reading MPSC Channel API for painless usage of threads with GTK in Rust
After almost 6 months, a new release of the GStreamer Rust bindings and the GStreamer plugin writing infrastructure for Rust is out. As usual this was coinciding with the release of all the gtk-rs crates to make use of all the new features they contain. Thanks to all the contributors of both gtk-rs and the Continue reading GStreamer Rust bindings 0.12 and GStreamer Plugin 0.3 release