Kernel Managed Buffers are areas of memory that are managed by the kernel, have some sort of token that can be passed among libraries, drivers, frameworks, and applications, and all of these users are able to communicate and use these memory areas without copying.


Use Case: Simple

Pipeline: v4l2src ! xvimagesink

On a desktop machine, the v4l2 driver should capture video directly into a provided KMB that is physically in RAM or directly into video card memory.

Xv needs to be extended to take a KMB instead of shared memory region. (Blessed by keithp).

Use Case: shmem replacement

Applications can share memory by creating a KMB, passing the token to the other process, and the other process mapping the same region.

Use Case: complex

Pipeline: v4l2src ! colorspace ! overlay ! tee ! openglfilter ! xvimagesink tee. ! hwencoder ! filesink

In this pipeline,

Use Case: transparent output switching

Pipeline: videotestsrc ! xvimagesink switched to ... ! openglsink and back.


* Can GEM be used for non-DRM clients?

KernelManagedBuffers (last edited 2011-04-07 18:11:15 by 70-36-246-130)