Speaker
Simon Himmelbauer
Description
We implemented a ringbuffer element to keep hundreds of video frames in a GStreamer pipeline and only emit buffers to the sink when requested. While its implementation was straightforward, we found out that other components, such as Video4Linux2 and PipeWire, are not primarily designed for keeping large amount of frames in memory for extended periods.
Specifically, we extended PipeWire to track buffer ownership across clients in order to improve how buffers are queued back to the V4L2 driver.
This presentation details our journey and lessons learned and will cover the following topics:
- Implementation of a ringbuffer element in GStreamer
- Impact on buffer management of GstV4l2BufferPool
- Ensuring zero-copy across the entire Gstreamer pipeline
- Challenges of using ringbuffer in combination with PipeWire and V4L2
- Buffer tracking in PipeWire
Speaker Bio
Simon is a software engineer at A&R TECH. He has used GStreamer across several fields, such as broadcasting, medical engineering and railway.
| Duration of the talk |
|---|
















