*

Collabora contributions to GStreamer 1.10

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
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.


Continue reading (Collabora contributions to GStreamer 1.10 - Part 2)...

Comments (0)


Add a Comment





Allowed tags: <b><i><br>Add a new comment:


Latest Blog Posts

ipcpipeline: Splitting a GStreamer pipeline into multiple processes

17/11/2017

Earlier this year I worked on a certain GStreamer plugin that is called “ipcpipeline”. This plugin provides elements that make it possible…

Quick hack: Experiments with crosvm

09/11/2017

Running crosvm outside Chromium OS is quite easy, with the only complication being that minijail isn't widely packaged in distros. In these…

Tracing memory leaks in the NFC Digital Protocol stack

06/11/2017

Kmemleak allows you to track possible memory leaks inside the Linux kernel. Basically, it tracks dynamically allocated memory blocks in…

Who knew we still had low-hanging fruit?

17/10/2017

Earlier this month I had the pleasure of attending the Web Engines Hackfest, hosted by Igalia at their offices in A Coruña, and also sponsored…

Performance analysis in Linux (continued)

06/10/2017

In this post, I will show one more example of how easy it is to disrupt performance of a modern CPU, and also run a quick discussion on…

XDC 2017 - Links to recorded presentations (videos)

23/09/2017

Many thanks to Google for recording all the XDC2017 talks. To make them easier to watch, here are direct links to each talk recorded at…

Open Since 2005

We use cookies on this website to ensure that you get the best experience. By continuing to use this website you are consenting to the use of these cookies. To find out more please follow this link.

Collabora Ltd © 2005-2017. All rights reserved. Website sitemap.