Pengutronix 2023: A Year in Review - Part II

In the second part of our review, we will focus, among other things, on the work of our graphics and multimedia team, which again covers the entire Linux stack, from the kernel to mesa to Pipwire, Weston and Webkit has accommodated a whole range of bug fixes, extensions and adjustments to cover the requirements of a wide range of customer projects.

In addition to developing patches, contact with the community and keeping up with the latest topics relating to 'Embedded Linux' are of course also a matter for us as a service provider. That's why we were present again at numerous conferences and events, sometimes just as participants, but mostly with our own lectures on current topics, which we list again as an overview in this part.

Graphics & Multimedia

Besides the GPU kernel driver etnaviv and the 3D graphics library mesa, for which we also brought various optimizations and bug fixes this year, there were several other exciting projects in the video and audio area that Pengutronix employees contributed to and that we will briefly introduce below.

PipeWire

PipeWire is used in various projects as it allows relatively easy sharing of video streams between applications. For example, one application can display a camera image on the screen while another encodes and records the same image.

We made many small bug fixes in PipeWire for these use cases. Among other things, we repaired the JPEG support in pipewiresink and the loading of videotestsrc.

This contributes to PipeWire's suitability for routing video streams in addition to audio streams.

GStreamer

At the GStreamer Conference 2023, we introduced the uvcsink element we developed. This element allows operating a UVC gadget (essentially the camera side of a USB camera) with a GStreamer pipeline. You just need to configure the appropriate formats and start a pipeline that sends video data from any source to a uvcsink. Then you can receive the video stream on another computer as if it were a normal USB camera.

Besides, we also fixed many small errors in GStreamer that occur in the special use cases of our customers and that no one had thought of before.

WebKit

In embedded Linux systems, browsers are increasingly used for UI display. Perfectly suited for this is WPE (https://wpewebkit.org/) - a WebKit port focused on embedded.

The obvious input method is a touch display. We have made several improvements upstream in processing touch events:

The Pointer Event API allows maximum flexibility, e.g., in interpreting gestures. Until now, support for touch events was missing here. We were able to bring this API as a new feature upstream.

All patches are included in the current stable release 2.42.

Weston

In November, Weston 13 was released, containing many new features that we developed. With Multi-Backend Support and GL-Renderer Support for VNC and PipeWire, which we developed, use cases where the screen output should be simultaneously available on the network are now much more efficient and easier to configure.

A more detailed overview of the new features of Weston 13 can be found in the blog post What's New in Weston 13?.

Talks and Events

At Pengutronix this year we are looking forward to the release of lecture recordings on our YouTube channel were not recorded and instead we presented at numerous local events. Thanks to the professional work of many community events, the majority of the lectures are available on various platforms to watch on cold winter days.

In February we were at FOSDEM in Brussels,

at the OpenEmbedded Workshop in Brussels:

In March at the CLT in Chemnitz (talks only in German):

Directly following this, we were present with a booth at the Embedded World in Nuremberg, together with our sister company Linux Automation GmbH. There, we presented our demos on open-source FPGA tooling, open-source graphics on the Rockchip RK3568, 3D acceleration with WPE WebKit, OTA field updates, hardware test automation, and T1L Ethernet, and had many interesting conversations.

In June at the EOSS in Prague, Czech Republic:

In July at the Bosch-OSS-Day in Stuttgart:

  • "Community Collaboration Patterns: Addressing Risk and Complexity" by Jan Lübbe
  • "From Vulnerable to Vigilant: A 10+ Year Roadmap for Embedded Software Maintenance" by Jan Lübbe
  • "Exploring RAUC: A Flexible Building Block for Embedded Linux Updates" by Rouven Czerwinski

In September at the All Systems Go in Berlin,

at the gStreamer Conference in A Coruña, Spain,

  • "Building your own USB camera with GStreamer" by Michael Grzeschik

at the TSNA in Ludwigsburg,

  • "… If You Try Sometime You’ll Find You Get What You Need - Streaming Media Over TSN Finally Made Easy by Going Mainline?" by Johannes Zink

and at the Embedded Recipes in Paris, France.

In October at the XDC in A Coruña, Spain:

In December at the ESE-Kongress in Sindelfingen:

  • "Build-Systeme für die effiziente Embedded-Linux-Entwicklung" by Bastian Krause

In addition, we used the Euro Python, the Kernel Recipes, and the FrOSCon as opportunities to meet and exchange ideas with developers from the community.