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!
PipeWire, the new and emerging open source framework that aims to greatly improve the exchange and management of audio and video streams…
With the advent of meson and gst-build, it is now possible to set up a GStreamer Windows development environment that rivals the finest…
I recently went to XDC 2019, where I gave yet another talk about Zink. I kinda forgot to write a blog-post about it, so here’s me trying…
Prior to joining Collabora, I took part in Round 17 of the Outreachy internships, to work on the virtual drivers in the media subsystem…
What HDCP is, and why supporting HDCP in Weston is justified in both an economical and technical context.
With the release of virglrenderer 0.8.0, getting accelerated OpenGL within a virtual machine (VM) made a big leap forward. Since virglrenderer-0.7.0,…