GStreamer HackFest Autumn 2022
By Rubén González and Andoni Morales
From the 16th to the 18th of October, we had the pleasure to host the much-awaited GStreamer HackFest at our offices in Barcelona, gathering 46 GStreamer hackers from several places around the globe, plus 7 of them assisting remotely.
The event was a great success in terms of assistance, especially for a HackFest not organized right after the GStreamer conference, where it's easier to schedule extra days. The reason for that success has no secret: All the community members were eager to meet again in person! The 2020 Spring Hackfest that Fluendo was going to organize in Barcelona was canceled because of the COVID outbreak, and three years had passed since the last community event in 2019.
The HackFest started the day before with a welcome dinner we organized at Xiroi's. With Barcelona's seafront as our landscape, it was the perfect place to welcome everyone, greet "viejos conocidos" and salute new ones.
On Monday, we started with a good breakfast and some technical issues: the Wi-Fi needed to be fixed. After fixing the problem, we did a round where we introduced ourselves and presented our goals for the HackFest. We were finally ready to start hacking.
That night we had dinner in el Born after doing a quick tour around El Gótico to see the Cathedral, Santa María del Mar, and the fantastic streets of the old town. That was another chance to continue the discussions around GStreamer and the opportunity to interact more.
During the second day of the HackFest, we organized a round of lightning talks consisting of short presentations of the work that has been done recently. Since the last conference was organized almost three years ago, it was an excellent chance to showcase part of the work done during that time. These were the topics presented:
✓ The new adaptivedemux2 by Edward Hervey (bilboed)
✓ New Rust plugins webrtcsink and webrtcsrc by Thibault Saunier (thiblahute)
✓ A demo of webrtcsink by Loïc Le Page (neodesys)
✓ Recovery Percentage (TWCC/RTX) by Håvard Graff (hgr)
✓ Stuffing with RTX by Tulio Beloqui (fR30n)
✓ GstShark tracers by Michael Grüner (michaelgruner)
✓ Gst-plugins-cv by Fabian Orccon (cfoch)
✓ Adding MSE and EME APIs to GStreamer by George Kiagiadakis (gkiagia)
✓ Improving analytics support by Daniel Morin (dmorin)
✓ GstPipelineStudio by Stephane Cerveau(dabrain34)
All of our engineering team attended the HackFest, working on different issues. Here you can find an overview of all of them. Let's start!
Andoni worked on adding support to build python on Windows with Meson. This required patches in several projects:
- In GObject-introspection and glib to support building from subprojects
- In Meson allowing pkg-config to use the uninstalled .pc files so that pkg-config can correctly list uninstalled dependencies
- In GStreamer, install pkg-config and enable introspection
Ruben checked all the work done by Fluendo in its fork of Cerbero to review if it can be upstreamed. All the commits were classified. By now, eight merge requests (MR) have already been created; more MR will be done in the future.
Carlos and Marc started an implementation of a BaseSrc element for Windows based on AMF. The first step they did was to move the AMF headers and utilities from the amfcodec/ folder to gst-libs/ to use them in other elements, not just inside amfcodec.
Marc created a PR to fix minor issues in OSXrelocator from Cerbero.
Diego worked with Aleksandr to extend the AAC parse to support the PCE header into the codec data for ADTS AAC. Those changes allow us to play that kind of audio. However, a refactor to reuse aacparser functions and check the sample rate values is still needed to create a PR. Diego also worked on updating the PR to early return errors when caps negotiation failed.
Aleksandr also ported an old PR to matroskademux and subparse to monorepo and created a PR to the clearkey drm plugin of Android's av framework.
Manel was working on having the latest version of GStreamer and GStreamer base plugins in the global repository of Conan.
Fabián worked on minor issues with Meson, GES, and GES examples.
Aleix and Sergio worked on this open issue about How to build OpenCV plugin on Windows. They also did initial work to integrate deep learning models in GStreamer using the OSS.
A HackFest is usually evaluated from a technical standpoint, with the work done during the days you focus on a particular topic. To us, it brings a much bigger value on the personal side, allowing you to meet in person the people you have been working with and interacting with IRC, the mailing list, or through merge requests. All the previous make us believe that this HackFest was a huge success, allowing long-time contributors and new ones to meet and work in person.
We are already counting the days until the next one.