Skip to main content.

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:

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

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

  1. 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
  2. Video and audio pipeline in kernel
    • V4L2 framework, media controller
    • Graphics and DRM subsystem
    • Sound subsystem, ALSA basics
  3. 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
  4. 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
  5. 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)