Using the dma-buf subsystem memory copies between cpu and gpu data, aswell as external systems like vaapi or v4l2 can be avoided.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 goal of this task is making the recorder use dmabufs where possible.
There are serveral directions that can be explored hereaxiom recorder software can record moving images from axiom cameras via either usb3 or ethernet. Currently in that software data is copied multiple times without need. Using the dma-buf subsystem memory copies between cpu and gpu data, either using a low level framework like `libdrm` to create the buffers or using something like `vulkan` to allocate the buffers.aswell as external systems like vaapi or v4l2 can be avoided.
Goals:
* making the recorder use dmabufs where possible
* There are serveral 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.
* 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
- v4l2 output * a obs plugin
- a obs plugin * vaapi accelerated video encoding
* implement one of these
Prerequisites:
* Vulkan / GPU / Dmabuf Know-How
- vaapi accelerated video encoding * Linux Know-How
Language Skills:
*Rust
Useful Links:
* https://github.com/apertus-open-source-cinema/axiom-recorder
Difficulty: Hard
Mentors: vup
To get in touch with any mentor check the Mentor Contact List.