Make AXIOM Recorder use dmabuf
Open, NormalPublic

Description

To apply for this task please complete this mandatory coding challenge together with your application: T1227
Applications without matching coding challenge completed will not be considered.

Read our Google Summer of Code Overview page:
https://wiki.apertus.org/index.php/GSoC_Overview

The AXIOM recorder software is envisioned to record moving images from AXIOM cameras via either USB3 or Ethernet. Currently in that software data is copied multiple times which is not optimal in terms of performance. Using the dma-buf subsystem memory redundant copies between CPU and GPU, as well as external systems like vaapi or v4l2 can be avoided and would therefore be suitable performance optimization developments.

Goals:

  • Make the recorder use dmabufs where possible
    • There are several directions that can be explored here, either using a low level framework like libdrm to create the buffers or using something like vulkan to allocate the buffers. Depending on the choice this project will likely include upstreaming dmabuf support to one of the rust crates we are using.
  • After the recorder is made to use dmabuf, this can be used to implement a multitude of additional functionality very efficiently, like for example
    • V4L2 output
    • Open Broadcaster Software (OBS) plugin
    • VAAPI accelerated video encoding / decoding
    • gstreamer input / output
  • implement one of these

Prerequisites:

  • Vulkan / GPU / Dmabuf Know-How
  • Linux Know-How

Language Skills:

  • Rust

Useful Links:

Difficulty: Hard
Hours: Depending on the number and which nodes you choose to implement this can either be a small project (175h) or a large one (350h). If you want to do a small project you will likely only implement basic dmabuf export support and some of the simpler nodes that could use that like V4L2 output. A larger project would implement more and more complicated nodes like VAAPI video encoding / decoding.

Mentors: vup, anuejn

To get in touch with any mentor check the Mentor Contact List.

Related Objects

vup created this task.Feb 18 2021, 8:48 PM
anuejn updated the task description. (Show Details)Feb 18 2021, 10:34 PM
anuejn updated the task description. (Show Details)
anuejn updated the task description. (Show Details)Feb 18 2021, 11:18 PM
anuejn renamed this task from Make axiom-recorder use dmabuf to Make AXIOM Recorder use dmabuf.Feb 18 2021, 11:28 PM
sebastian updated the task description. (Show Details)Feb 19 2021, 6:56 PM
sebastian updated the task description. (Show Details)Feb 19 2021, 7:00 PM
sebastian updated the task description. (Show Details)Feb 19 2021, 8:05 PM
sebastian triaged this task as Normal priority.Feb 20 2021, 2:58 PM
vup updated the task description. (Show Details)Feb 24 2022, 3:07 PM
sebastian updated the task description. (Show Details)Feb 24 2022, 6:18 PM