The media_device structure abstracts functions common to all kind of media devices (v4l2, dvb, alsa, ...). It manages media entities and offers a userspace API to discover and configure the media device internal topology. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
57 lines
2.3 KiB
XML
57 lines
2.3 KiB
XML
<partinfo>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Laurent</firstname>
|
|
<surname>Pinchart</surname>
|
|
<affiliation><address><email>laurent.pinchart@ideasonboard.com</email></address></affiliation>
|
|
<contrib>Initial version.</contrib>
|
|
</author>
|
|
</authorgroup>
|
|
<copyright>
|
|
<year>2010</year>
|
|
<holder>Laurent Pinchart</holder>
|
|
</copyright>
|
|
|
|
<revhistory>
|
|
<!-- Put document revisions here, newest first. -->
|
|
<revision>
|
|
<revnumber>1.0.0</revnumber>
|
|
<date>2010-11-10</date>
|
|
<authorinitials>lp</authorinitials>
|
|
<revremark>Initial revision</revremark>
|
|
</revision>
|
|
</revhistory>
|
|
</partinfo>
|
|
|
|
<title>Media Controller API</title>
|
|
|
|
<chapter id="media_controller">
|
|
<title>Media Controller</title>
|
|
|
|
<section id="media-controller-intro">
|
|
<title>Introduction</title>
|
|
<para>Media devices increasingly handle multiple related functions. Many USB
|
|
cameras include microphones, video capture hardware can also output video,
|
|
or SoC camera interfaces also perform memory-to-memory operations similar to
|
|
video codecs.</para>
|
|
<para>Independent functions, even when implemented in the same hardware, can
|
|
be modelled as separate devices. A USB camera with a microphone will be
|
|
presented to userspace applications as V4L2 and ALSA capture devices. The
|
|
devices' relationships (when using a webcam, end-users shouldn't have to
|
|
manually select the associated USB microphone), while not made available
|
|
directly to applications by the drivers, can usually be retrieved from
|
|
sysfs.</para>
|
|
<para>With more and more advanced SoC devices being introduced, the current
|
|
approach will not scale. Device topologies are getting increasingly complex
|
|
and can't always be represented by a tree structure. Hardware blocks are
|
|
shared between different functions, creating dependencies between seemingly
|
|
unrelated devices.</para>
|
|
<para>Kernel abstraction APIs such as V4L2 and ALSA provide means for
|
|
applications to access hardware parameters. As newer hardware expose an
|
|
increasingly high number of those parameters, drivers need to guess what
|
|
applications really require based on limited information, thereby
|
|
implementing policies that belong to userspace.</para>
|
|
<para>The media controller API aims at solving those problems.</para>
|
|
</section>
|
|
</chapter>
|