Posted on 02/11/2016 by Olivier Crête
Yesterday, we celebrated the release of GStreamer 1.10, the culmination of 7 months of very hard work from the GStreamer community. Collabora's multimedia team is extremely proud of our contributions to this new major feature release.
Our contributions had two main targets: improve GStreamer's overall reliability and improve support for hardware accelerated plugins. We've also contributed a number of improvements that we've done in relation to the work we do with our clients! If you would like more information or assistance on how to leverage these improvements into your products, please get in touch with us!
Guillaume Desmottes added a GstTracer plugin to trace memory leaks in GStreamer applications and plugins. This traces GStreamer objects and mini-objects in a very quick way so it can be run in cases where valgrind is too heavy. For example, it can be enabled in regular testing or used on constrained embedded devices. He also fixed dozens of leaks all over GStreamer that he discovered based on this new plugin. In particular, he fixed a large number of leaks in the new decodebin3/playbin3 code. The objective is to have leak tracing always on in unit tests in the next version.
Guillaume also added support for ALSA devices that have a number of channels, but no specific position associated with them. Those are present in industrial devices that capture N independent channels instead of a 5.1 or a 7.1 positional audio.
Nicolas Dufresne added a new element to do Acoustic Echo Cancellation (AEC), this is necessary if you have a microphone that can capture what comes out of the speaker when doing a phone call, for example, when using speakerphone. This was previously left to PulseAudio on Linux and to other platform specific features on other platforms, but with this new GStreamer element, it is possible to have AEC on all platforms. It uses the webrtc-audio-processing library containing code published by Google as part of the WebRTC library (using by Chromium and Firefox). This library represents the best Open Source Echo canceller out there and can correct echo even in the presence of bad conditions, such as hardware lying about its latency.
|Figure 1. GStreamer Echo Cancellation.|
He's also been contributing heavily to the Wayland sink, in particular, he's reviewed and committed support for the new wl_viewporter extensions allowing video scaling and cropping to be delegated to the Wayland compositor. But he's also made it optional so that waylandsink can also work on current compositor that don't support it. He's also added support for the video meta, allowing zero-copy operations in more cases.
Nicolas also made a number of smaller improvements. He cleaned up the rfbsrc element that is used to receive from the RFB protocol used by VNC. Among those, he enabled the GObject property notification when the name of a GstObject is changed, he made the libvpx decoder (VP8, VP9) use multiple threads on multi-core systems, and he made a number of small fixes to the V4L2 elements. Nicolas has also be continuing in his role as V4L2 maintainer and he reviewed a large number of patches from the community.
This covers the work done by Nicolas and Guillaume on GStreamer 1.10. Tomorrow, I'll give an overview of the work done by the rest of Collabora's multimedia team, including Vincent, Wonchul, Thibault and myself.
Earlier this month, Olivier Crête, Nicolas Dufresne, George Kiagiadakis & I attended the GStreamer Spring Hackfest in Lund, Sweden. Hosted…
A few months ago, Robert Foss wrote a blog post about virtualizing GPU Access. Here's a look at some of the major improvements that have…
Generously hosted by Axis in the beautiful Lund, Sweden, the annual spring hackfest is an occasion for the community to get together to…
The i.MX 6 platform has for the past few years enjoyed a large effort to add upstream support to Linux and surrounding projects. The newly…
Following on from part 1 in the series, part 2 covers more developments in low-level graphics, including support for buffer modifiers in…
The latest enhancements to the DRM subsystem have made mainline Linux much more attractive, making drivers easier to write, applications…