July 18, 2019
A little over a month and a half ago, at the end of May, Collaborans including Aaron Boxer, George Kiagiadakis, Guillaume Desmottes, Stéphane Cerveau and myself took part in the GStreamer Spring Hackfest in Oslo. This year, the hackfest was kindly hosted by Pexip, a company that uses and develops GStreamer RTP stack for their high end video conferencing servers. The weekend ended up being quite busy for everyone attending. Here's a look back at what each us worked on.
Aaron discussed various ways to record RTSP streams when used with playbin and brought up some of his pending merge requests around the closed captioning renderer and Active Format Description (AFD) support, with a discussion about redoing the renderer properly, and in Rust.
George discussed a major re-work of the gst-omx bufferpool code that he has been doing and then moved his focus on Qt/Android support. He mostly focused on the missing bits, discussing builds and infrastructure issues with Nirbheek and myself, and going through his old patches.
Guillaume took the opportunity to present a solution for video buffer layout negotiation. This is part of a long term goal to ensure fully zero-copy pipeline on Xilinx Zynq UltraScale+ MPSoC and in GStreamer in general. He then discussed various issues he had faced with his current side project, Karapulse, a karaoké player written in Rust and using GStreamer. He used Matthew Waters' expertise for the rendering side, and discussed implementing bindings for GstBaseParse in Rust with Sebastien Dröge. He then started implementing a cdgparse element (a karaoké media format).
Stéphane spent most of his time factoring out the MPD (DASH manifests) methods to be used in the new dashsink element he has been working on. He also discussed various aspects of Cerbero and contributed support for ZBar, an open source software suite for reading bar codes from various sources.
As for myself, I was all over the place. I worked a bit with Andoni to plan and prepare the merge of a big MinGW toolchain update which has since landed. Apart from the above-mentioned discussions, I brought up my concerns with Sebastien about the lack of instructions and integration of the Rust GStreamer elements. One of the things that got my attention is that the only usable AV1 encoder (rav1e) has been integrated into as a Rust plugin, but the current Rust build system makes life really difficult for Linux developers because it doesn't integrate well with existing systems, so none of the distributions include it, not even Cerbero, GStreamer's own build system.
Finally, we apparently caused the freedesktop.org GitLab infrastructure to collapse! Or maybe it was coincidence? It was the first hackfest with per-commit CI running. Note however that we have now documented how to push without CI being run. That technical issue was just a good excuse to have more discussions. Overall, it was a very nice get together, Håvard Graff from Pexip was a great host!
Monado now has initial support for 6DoF ("inside-out") tracking for devices with cameras and an IMU! Three free and open source SLAM/VIO…
When developing an application or a library, it is very common to want to run it without installing it, or to install it into a custom prefix…
An incredible amount has changed in Mesa and in the Vulkan ecosystems since we wrote the first Vulkan driver in Mesa for Intel hardware…
Every file system used in production has tools to try to recover from system crashes. To provide a better infrastructure for those tools,…
The PipeWire project made major strides over the past few years, bringing shiny new features, and paving the way for new possibilities in…
Over the past 18 months, we have been on a roller-coaster ride developing futex2, a new set of system calls. As part of this effort, the…