As discussed on IRC, memory-to-memory need to be modeled
properly in order to be supported by the media controller
framework, and thus to support the Request API.
This RFC is a first draft on the memory-to-memory
media controller topology.
The topology looks like this:
Device topology
- entity 1: input (1 pad, 1 link)
type Node subtype Unknown flags 0
pad0: Source
-> "proc":1 [ENABLED,IMMUTABLE]
- entity 3: proc (2 pads, 2 links)
type Node subtype Unknown flags 0
pad0: Source
-> "output":0 [ENABLED,IMMUTABLE]
pad1: Sink
<- "input":0 [ENABLED,IMMUTABLE]
- entity 6: output (1 pad, 1 link)
type Node subtype Unknown flags 0
pad0: Sink
<- "proc":0 [ENABLED,IMMUTABLE]
The first commit introduces a register/unregister API,
that creates/destroys all the entities and pads needed,
and links them.
The second commit uses this API to support the vim2m driver.
Notes
-----
* A new device node type is introduced VFL_TYPE_MEM2MEM,
this is mostly done so the video4linux core doesn't
try to register other media controller entities.
* Also, a new media entity type is introduced. Memory-to-memory
devices have a multi-entity description and so can't
be simply embedded in other structs, or cast from other structs.
Ezequiel Garcia (1):
media: add helpers for memory-to-memory media controller
Hans Verkuil (1):
vim2m: add media device
drivers/media/platform/vim2m.c | 41 ++++++-
drivers/media/v4l2-core/v4l2-dev.c | 23 ++--
drivers/media/v4l2-core/v4l2-mem2mem.c | 157 +++++++++++++++++++++++++
include/media/media-entity.h | 4 +
include/media/v4l2-dev.h | 2 +
include/media/v4l2-mem2mem.h | 5 +
include/uapi/linux/media.h | 2 +
7 files changed, 222 insertions(+), 12 deletions(-)
--
2.17.1