Video Buffer Management - 2022.2 English

Zynq UltraScale+ MPSoC ZCU106 Video Codec Unit Targeted Reference Design User Guide (UG1250)

Document ID
Release Date
2022.2 English

In the case of a raw/processed pipeline, the video capture device (v4l2src), video processing accelerator (VCU element), and kmssink plugin use DMABUF framework for sharing buffers between peer elements (see This Figure).

Figure 3-19:      Buffer Sharing

X-Ref Target - Figure 3-19


The following steps are performed in DMA buffer sharing.

In the capture-encode side:

1.The V4L2 capture device (the client driver) allocates buffer.

2.The v4l2src plug-in exports/imports the DMA buffer to the gst-omx plug-in.

3.The gst-omx plug-in passes the file descriptor to the encoder driver.

4.The encoder driver uses the DMA_BUF framework and reads the kernel buffer for encoding.

In the playback side:

1.The decoder driver allocates DMA buffer.

2.The gst-omx plug-in exports the file descriptor (FD) to the kmssink plug-in.

3.The kmssink plug-in passes the file descriptor to the DisplayPort controller driver.

4.The DisplayPort driver uses the kernel DMA_BUF framework to know the decoder buffer location.

5.The DisplayPort DMA reads the decoded buffer without copying the buffer in kernel memory.