November 02, 2016
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.
PipeWire continues to evolve with the recent integration of libcamera, a library to support complex cameras. In this blog post, I'll explain…
A high-level introduction of the Linux graphics stack, how it is used within ChromeOS, and the work done to improve software rendering (while…
Last year, a (controversial) feature was added to the Linux kernel to support optimized case-insensitive file name lookups in the Ext4 filesystem.…
We have now integrated Mali GPU hardware counters supported by Panfrost with Perfetto's tracing SDK, unlocking all-in-one graphics-aware…
Key performance improvements and fixes to GStreamer's RTP stack have landed in GStreamer 1.18, due in the coming months. The latest enhancements…
Following our recent presentation at OSSummit, many showed interest in learning more about solving real-world problems with computer vision.…