From: Sakari Ailus <sakari.ailus@maxwell.research.nokia.com>
To: Clemens Ladisch <clemens@ladisch.de>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
alsa-devel@alsa-project.org, broonie@opensource.wolfsonmicro.com,
linux-kernel@vger.kernel.org, lennart@poettering.net,
linux-omap@vger.kernel.org, linux-media@vger.kernel.org
Subject: Re: [alsa-devel] [RFC/PATCH v6 03/12] media: Entities, pads and links
Date: Tue, 14 Dec 2010 16:49:08 +0200 [thread overview]
Message-ID: <4D0783E4.7050708@maxwell.research.nokia.com> (raw)
In-Reply-To: <4D06458B.6080808@ladisch.de>
Hi Clemens, Laurent, Hans & others!
Clemens Ladisch wrote:
> I wrote:
>> I'll see if I can draw up the ALSA-specific media stuff over the weekend.
>
> Sorry, wrong weekend.
>
> Anyway, below are some remarks and a patch.
>
>
> * Entity types
>
> TYPE_NODE was renamed to TYPE_DEVICE because "node" sounds like a node
> in a graph, which does not distinguish it from other entity types
> because all entities are part of the topology graph. I chose "device"
> as this type describes entities that are visible as some device node to
> other software.
>
> TYPE_EXT describes entities that represent some interface to the
> external world, TYPE_INT those that are internal to the entire device.
> (I'm not sure if that distinction is very useful, but TYPE_SUBDEV seems
> to be an even more meaningless name.)
>
>
> ALSA mixer controls are not directly represented; a better fit for the
> architecture of actual devices is that one or more mixer controls can be
> associated with an entity. (This can be done with a field of the mixer
> control.)
>
>
> * Entity properties
>
> There needs to be a mechanism to associate meta-information (properties)
> with entities. This information should be optional and extensible, but,
> when being handled inside the kernel, doesn't need to be more than
> a read-only blob. I think that something like ALSA's TLV format (used
> for mixer controls) can be used here. (I'm not mentioning the X-word
> here, except to note that the "M" stands for "markup".)
>
>
> * Entity subtypes
>
> EXT_JACK_ANALOG represents any analog audio and/or video connector.
> Properties for audio jacks would be jack type (TRS/RCA), color code,
> line level, position, etc.
>
> EXT_JACK_DIGITAL represents a digital connector like S/PDIF (coax/
> TOSLINK), ADAT, TDIF, or MADI.
>
> EXT_JACK_BUS represents a bus like FireWire and comes from the USB audio
> spec. (I doubt that any devices with this entitiy will ever exist.)
>
> EXT_INSTRUMENT represents something like an e-guitar, keyboard, or MIDI
> controller. (Instrument entities are typically audio sources and MIDI
> sources and sinks, but can also be audio sinks.)
>
> EXT_SPEAKER also includes headphones; there might be made a case for
> having those as a separate subtype.
>
> EXT_PLAYER represents a device like a CD/DVD/tape player. Recorders can
> also write to that device, so "player" might not be an ideal name.
>
> EXT_BROADCAST represents devices like TV tuners, satellite receivers,
> cable tuners, or radios.
>
> INT_SYNTHESIZER converts MIDI to audio.
>
> INT_NOISE_SOURCE comes from the USB audio spec; this is not an attempt
> to describe the characteristics of consumer-grade devices :-) , but
> represents an internal noise source for level calibration or measurements.
>
> INT_CONTROLS may have multiple independent controls (this is USB's
> Feature Unit); INT_EFFECT may have multiple controls that affect one
> single algorithm.
>
> INT_CHANNEL_SPLIT/MERGE are needed for HDAudio devices, whose topology
> information has only stereo links.
This naming already has been commented, but what do you think: should
the type explicitly tell what kind of interface, if any, is exported to
user space?
Only MEDIA_ENTITY_NODE_* types do this currently, and
MEDIA_ENTITY_TYPE_SUBDEV_* to some extent, but the way is not consistent
at the moment. MEDIA_ENTITY_NODE_* range has lost of different
interfaces whereas MEDIA_ENTITY_TYPE_SUBDEV_* are basically offering
v4l2_subdev and beyond that, suggesting what kind of controls might be
found from the nodes.
I would expect that the interfaces offered by the character devices
would be somewhat standardised in the end like v4l2_subdev user space
interface.
The types above are mostly describing the role of an entity, which might
be interesting as well.
Regards,
--
Sakari Ailus
sakari.ailus@maxwell.research.nokia.com
next prev parent reply other threads:[~2010-12-14 14:49 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-25 2:28 [RFC/PATCH v6 00/12] Media controller (core and V4L2) Laurent Pinchart
2010-11-25 2:28 ` [RFC/PATCH v6 01/12] media: Media device node support Laurent Pinchart
2010-11-25 2:28 ` [RFC/PATCH v6 02/12] media: Media device Laurent Pinchart
2010-11-25 9:33 ` Clemens Ladisch
2010-11-25 14:42 ` Laurent Pinchart
2010-11-25 2:28 ` [RFC/PATCH v6 03/12] media: Entities, pads and links Laurent Pinchart
2010-11-25 9:38 ` Clemens Ladisch
2010-11-25 13:41 ` Mark Brown
2010-11-25 15:29 ` [RFC/PATCH v6 03/12] [alsa-devel] " Laurent Pinchart
2010-11-25 15:35 ` [RFC/PATCH v6 03/12] " Mark Brown
2010-11-25 15:21 ` [RFC/PATCH v6 03/12] [alsa-devel] " Laurent Pinchart
2010-11-25 15:28 ` [RFC/PATCH v6 03/12] " Mark Brown
2010-11-26 9:10 ` Clemens Ladisch
2010-12-13 16:10 ` Clemens Ladisch
2010-12-14 12:00 ` [alsa-devel] " Laurent Pinchart
2010-12-14 12:40 ` Hans Verkuil
2010-12-14 12:53 ` Laurent Pinchart
2010-12-14 13:49 ` Clemens Ladisch
2010-12-14 23:50 ` Laurent Pinchart
2010-12-21 16:49 ` [alsa-devel] " Hans Verkuil
2010-12-14 13:31 ` Clemens Ladisch
2010-12-14 13:54 ` Takashi Iwai
2010-12-14 14:25 ` Laurent Pinchart
2010-12-14 15:30 ` Clemens Ladisch
2010-12-14 14:51 ` [alsa-devel] " Hans Verkuil
2010-12-14 14:57 ` Laurent Pinchart
2010-12-14 14:49 ` Sakari Ailus [this message]
2010-11-25 13:36 ` Mark Brown
2010-11-25 15:40 ` Laurent Pinchart
2010-11-25 15:49 ` Mark Brown
2010-11-26 14:13 ` Laurent Pinchart
2010-11-26 14:14 ` Mark Brown
2010-11-28 12:34 ` Laurent Pinchart
2010-11-28 15:57 ` Hans Verkuil
2010-11-25 2:28 ` [RFC/PATCH v6 04/12] media: Entity graph traversal Laurent Pinchart
2010-11-25 2:28 ` [RFC/PATCH v6 05/12] media: Reference count and power handling Laurent Pinchart
2010-11-25 13:49 ` Mark Brown
2010-11-25 15:43 ` Laurent Pinchart
2010-11-25 17:49 ` Sakari Ailus
2010-11-25 21:47 ` Mark Brown
2010-11-28 12:33 ` Laurent Pinchart
2010-11-28 18:25 ` Mark Brown
2010-11-25 2:28 ` [RFC/PATCH v6 06/12] media: Media device information query Laurent Pinchart
2010-11-25 2:28 ` [RFC/PATCH v6 07/12] media: Entities, pads and links enumeration Laurent Pinchart
2010-11-25 2:28 ` [RFC/PATCH v6 08/12] media: Links setup Laurent Pinchart
2010-11-25 2:28 ` [RFC/PATCH v6 09/12] media: Entity locking and pipeline management Laurent Pinchart
2010-11-25 13:53 ` Mark Brown
2010-11-25 15:47 ` Laurent Pinchart
2010-11-25 2:28 ` [RFC/PATCH v6 10/12] v4l: Add a media_device pointer to the v4l2_device structure Laurent Pinchart
2010-11-25 2:28 ` [RFC/PATCH v6 11/12] v4l: Make video_device inherit from media_entity Laurent Pinchart
2010-11-25 11:38 ` Hans Verkuil
2010-11-25 14:37 ` Laurent Pinchart
2010-11-25 2:28 ` [RFC/PATCH v6 12/12] v4l: Make v4l2_subdev " Laurent Pinchart
2010-11-25 14:28 ` [RFC/PATCH v6 00/12] Media controller (core and V4L2) Mark Brown
2010-11-26 14:07 ` Laurent Pinchart
[not found] ` <201012031119.36771.laurent.pinchart@ideasonboard.com>
[not found] ` <201012031306.18520.hverkuil@xs4all.nl>
2010-12-03 13:50 ` [RFC/PATCH v6 03/12] media: Entities, pads and links Laurent Pinchart
2010-12-03 14:54 ` Mark Brown
2010-12-07 17:13 ` Hans Verkuil
2010-12-07 17:55 ` Mark Brown
2010-12-07 18:11 ` Hans Verkuil
2010-12-07 19:03 ` Mark Brown
2010-12-09 12:53 ` Laurent Pinchart
2010-12-10 16:35 ` Sakari Ailus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D0783E4.7050708@maxwell.research.nokia.com \
--to=sakari.ailus@maxwell.research.nokia.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=clemens@ladisch.de \
--cc=laurent.pinchart@ideasonboard.com \
--cc=lennart@poettering.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox