Agenda for Training Course Multimedia
Introduction
This three day training provides in-depth information about modern multimedia applications in Embedded Linux systems.
It answers frequently asked questions like:
- How do I get Open source drivers running on my hardware?
- How can I test and debug my system?
- How can I set up simple and complex media pipelines with maximum of performance
while still consuming as little CPU power as possible?
... and much more
Hands-on sessions are performed on target hardware. Please note that
this is not an introductory course to multimedia topics. You should
already know how these work and have at least some practical
experience, too.
Who should attend?
You already use GNU/Linux for your projects and need to perform some
challenging multimedia tasks, like high-end graphical output on
systems with restricted resources and limited hardware capabilities,
complex handling of sensors and cameras, or embedded GPUs which have
don;t have optimal Open Source support yet.
The class is aimed at software and system engineers interested in the
gory and ugly details of multimedia support in Linux with a solid
knowledge of Embedded GNU/Linux and multimedia applications.
Requirements
- Experience with Software development under Linux
- Familiarity with a Unix-based operating system
- Familiarity with Linux multimedia tools
All the training material and the presentation is in English.
The work- and reference books typically stay with the students after
the training.
Course Outline
- Introduction to multimedia in general
- What are multimedia devices
- Video -- cameras, mem2mem devices, GPUs
- Audio -- simple and complex audio devices
- How multimedia are done today
- Zero copy, buffer passing around
- Simple and complex media pipelines
- Video and audio pipeline in kernel
- V4L2 basics, media controller
- ALSA basics
- Video and audio pipeline in userspace
- Basic tools, v4l2-ctl, yavta, aplay/arecord/alsaloop
- Interacting with the kernel, v4l devices, DMABUFs, PCM devices
- Complex multimedia pipelines, gstreamer, ffmpeg
- GPU
- What are GPUs and how they work
- Interaction between kernel and userspace drivers
- Mesa3D internals, GPU driver details
- Debugging and profiling GPU drivers
- CI for GPU drivers
- Tying it all together
- Importing DMABUFs into GPU textures, zero copy
- GPU texture formats, efficient memory accesses
- Interaction between Linux multimedia and Qt5
- Interaction between Linux multimedia and web browsers
(WPE and QtWebengine)