Agenda for Training Course "Embedded 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 Linux
- What are multimedia devices
- Video -- cameras, memory-to-memory devices, displays, GPUs
- Audio -- Audio interfaces, codecs, 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 framework, media controller
- Graphics and DRM subsystem
- Sound subsystem, ALSA basics
- Video and audio pipeline in userspace
- Interacting with the kernel, V4L devices, DMABUFs, audio devices, DRM
- Basic tools, v4l2-ctl, yavta, aplay/arecord/alsaloop, libdrm
- 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 the multimedia together
- Importing DMABUFs from video pipeline into GPU textures, zero copy
- GPU compositing
- GPU texture formats, efficient memory accesses
- Interaction between Linux multimedia and Qt5
- Interaction between Linux multimedia and web browsers
(WPE and QtWebengine)