Differences between revisions 3 and 4
Revision 3 as of 2011-04-07 18:07:14
Size: 1320
Editor: 70-36-246-130
Revision 4 as of 2011-04-07 18:11:15
Size: 1379
Editor: 70-36-246-130
Deletions are marked like this. Additions are marked like this.
Line 33: Line 33:

== Details ==

* Can GEM be used for non-DRM clients?

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.


  • Although KMBs are primarily meant for video images, they should be generic with enough metadata capability to describe a video image.
  • (nice to have) ability to allocate contiguous RAM
  • reference counting, with automatic cleanup at process exit

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)