[alsa-devel] [RFC/PATCH v6 03/12] media: Entities, pads and links
clemens at ladisch.de
Fri Nov 26 10:10:54 CET 2010
Laurent Pinchart wrote:
> On Thursday 25 November 2010 10:38:05 Clemens Ladisch wrote:
> > MEDIA_ENTITY_TYPE_NODE_ALSA_PCM
> > MEDIA_ENTITY_TYPE_NODE_ALSA_MIDI
> > MEDIA_ENTITY_TYPE_SUBDEV_ALSA_CONTROL
> I agree about PCM and MIDI, but I'm not sure about controls. If controls are
> part of an entity, the entity will be reported through the media controller
> API. If information about that entity can be queried through existing APIs
> (ALSA, V4L, ...) those APIs should be used.
At the moment, ALSA has no API for topology information.
> I can certainly imagine a graph with 100 controls, but maybe several
> controls can be part of the same node ?
There is indeed no strict 1:1 relation; e.g., volume and mute are often
part of the same node. So it looks we need some kind of separate ALSA
node, which can be associated with mixer controls and/or other
ALSA already has is a method to query arbitrary (TLV) metadata for mixer
controls; the entity/control relationship can be stored in the control.
> I think we will need a new ioctl in the media controller API to report
> advanced information about an entity. This could be used to report controls
> implemented by an ALSA element if ALSA doesn't provide a way to do that
This advanced information would always be specific to the entity type,
so maybe this should be part of that subsystem's API. Otherwise, the
media_entity would need a callback, or store a pointer to some memory
block (which assumes that the information is always constant).
> > 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.
> Agreed, we will need to add new entity types and subtypes for those. The
> reason they're not part of this submission is that I wanted real use cases
> instead of coming up with a made-up list of entities I think would be useful.
The reason that I'm always mentioning the USB and HD audio specs is that
those already define entities that should cover practically all of the
audio needs. (And, of course, we want to be able to report those
entities without having to do too many conversions.)
I'll see if I can draw up the ALSA-specific media stuff over the weekend.
More information about the Alsa-devel