Re: [RFC/PATCH v6 03/12] [alsa-devel] media: Entities, pads and links

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Clemens Ladisch
Date: Thursday, November 25, 2010 - 2:38 am

Laurent Pinchart wrote:

In the descriptors of USB Audio and HDAudio devices, the links are
stored only in the sink.  But AFAICS this doesn't matter in the media
driver API.


So the intended userspace API for controlling routing is to change the
ACTIVE flag of links?

In USB and HD audio devices, all links are immutable, and the routing
is controlled by 'selector' entities that activate exactly one of their
input pads.  In userspace, this entity shows up as a mixer control.
I guess it would be possible to map the ACTIVE flag onto these controls.

Alternatively, entities can have 'mute' mixer controls associated with
their pads.  In this case, multiple unmuted inputs would be mixed
together.


ALSA has PCM and MIDI devices, and several types of mixer controls.
(It also has hardware dependent and timer devices, but I don't think
these would need topology information.)  So we need at least these:
  MEDIA_ENTITY_TYPE_NODE_ALSA_PCM
  MEDIA_ENTITY_TYPE_NODE_ALSA_MIDI
  MEDIA_ENTITY_TYPE_SUBDEV_ALSA_CONTROL

Furthermore, topology information is also needed for entities not
associated with a mixer control, such as microphones, speakers, jacks/
connectors, and effect units.  These entities are defined in the USB and
HD audio specifications, but are not yet handled by ALSA.


ALSA devices are not addressed by their device node but with card/device/
subdevice numbers; mixer controls have numeric IDs, unique per card:

		struct {
			int card;
			int device;
			int subdevice;
		} alsa_device;
		struct {
			int card;
			int numid;
		} alsa_control;


Regards,
Clemens
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC/PATCH v6 00/12] Media controller (core and V4L2), Laurent Pinchart, (Wed Nov 24, 7:28 pm)
[RFC/PATCH v6 01/12] media: Media device node support, Laurent Pinchart, (Wed Nov 24, 7:28 pm)
[RFC/PATCH v6 02/12] media: Media device, Laurent Pinchart, (Wed Nov 24, 7:28 pm)
[RFC/PATCH v6 03/12] media: Entities, pads and links, Laurent Pinchart, (Wed Nov 24, 7:28 pm)
[RFC/PATCH v6 04/12] media: Entity graph traversal, Laurent Pinchart, (Wed Nov 24, 7:28 pm)
[RFC/PATCH v6 06/12] media: Media device information query, Laurent Pinchart, (Wed Nov 24, 7:28 pm)
[RFC/PATCH v6 08/12] media: Links setup, Laurent Pinchart, (Wed Nov 24, 7:28 pm)
Re: [RFC/PATCH v6 02/12] media: Media device, Clemens Ladisch, (Thu Nov 25, 2:33 am)
Re: [RFC/PATCH v6 03/12] [alsa-devel] media: Entities, pad ..., Clemens Ladisch, (Thu Nov 25, 2:38 am)
Re: [RFC/PATCH v6 02/12] media: Media device, Laurent Pinchart, (Thu Nov 25, 7:42 am)
Re: [RFC/PATCH v6 03/12] media: Entities, pads and links, Laurent Pinchart, (Thu Nov 25, 8:40 am)
Re: [RFC/PATCH v6 05/12] media: Reference count and power ..., Laurent Pinchart, (Thu Nov 25, 8:43 am)
Re: [RFC/PATCH v6 00/12] Media controller (core and V4L2), Laurent Pinchart, (Fri Nov 26, 7:07 am)
Re: [RFC/PATCH v6 03/12] media: Entities, pads and links, Laurent Pinchart, (Fri Nov 26, 7:13 am)
Re: [RFC/PATCH v6 05/12] media: Reference count and power ..., Laurent Pinchart, (Sun Nov 28, 5:33 am)
Re: [RFC/PATCH v6 03/12] media: Entities, pads and links, Laurent Pinchart, (Sun Nov 28, 5:34 am)
Re: [RFC/PATCH v6 03/12] media: Entities, pads and links, Laurent Pinchart, (Fri Dec 3, 6:50 am)
Re: [RFC/PATCH v6 03/12] media: Entities, pads and links, Laurent Pinchart, (Thu Dec 9, 5:53 am)