MEDIA_IOC_ENUM_ENTITIES — Enumerate entities and their properties
int ioctl( | int fd, |
int request, | |
struct media_entity_desc *argp) ; |
To query the attributes of an entity, applications set the id field of a struct media_entity_desc structure and call the MEDIA_IOC_ENUM_ENTITIES ioctl with a pointer to this structure. The driver fills the rest of the structure or returns an EINVAL error code when the id is invalid.
Entities can be enumerated by or'ing the id with the
MEDIA_ENT_ID_FLAG_NEXT
flag. The driver will return
information about the entity with the smallest id strictly larger than the
requested one ('next entity'), or the EINVAL error code if there is none.
Entity IDs can be non-contiguous. Applications must not try to enumerate entities by calling MEDIA_IOC_ENUM_ENTITIES with increasing id's until they get an error.
Two or more entities that share a common non-zero
group_id
value are considered as logically
grouped. Groups are used to report
ALSA, VBI and video nodes that carry the same media stream
lens and flash controllers associated with a sensor
Table L.2. struct media_entity_desc
__u32 | id | Entity id, set by the application. When the id is or'ed with
MEDIA_ENT_ID_FLAG_NEXT , the driver clears the
flag and returns the first entity with a larger id. | ||
char | name [32] | Entity name as an UTF-8 NULL-terminated string. | ||
__u32 | type | Entity type, see Table L.3, “Media entity types” for details. | ||
__u32 | revision | Entity revision in a driver/hardware specific format. | ||
__u32 | flags | Entity flags, see Table L.4, “Media entity flags” for details. | ||
__u32 | group_id | Entity group ID | ||
__u16 | pads | Number of pads | ||
__u16 | links | Total number of outbound links. Inbound links are not counted in this field. | ||
union | ||||
struct | dev | Valid for (sub-)devices that create a single device node. | ||
__u32 | major | Device node major number. | ||
__u32 | minor | Device node minor number. | ||
__u8 | raw [184] |
Table L.3. Media entity types
MEDIA_ENT_T_DEVNODE | Unknown device node |
MEDIA_ENT_T_DEVNODE_V4L | V4L video, radio or vbi device node |
MEDIA_ENT_T_DEVNODE_FB | Frame buffer device node |
MEDIA_ENT_T_DEVNODE_ALSA | ALSA card |
MEDIA_ENT_T_DEVNODE_DVB_FE | DVB frontend devnode |
MEDIA_ENT_T_DEVNODE_DVB_DEMUX | DVB demux devnode |
MEDIA_ENT_T_DEVNODE_DVB_DVR | DVB DVR devnode |
MEDIA_ENT_T_DEVNODE_DVB_CA | DVB CAM devnode |
MEDIA_ENT_T_DEVNODE_DVB_NET | DVB network devnode |
MEDIA_ENT_T_V4L2_SUBDEV | Unknown V4L sub-device |
MEDIA_ENT_T_V4L2_SUBDEV_SENSOR | Video sensor |
MEDIA_ENT_T_V4L2_SUBDEV_FLASH | Flash controller |
MEDIA_ENT_T_V4L2_SUBDEV_LENS | Lens controller |
MEDIA_ENT_T_V4L2_SUBDEV_DECODER | Video decoder, the basic function of the video decoder is to accept analogue video from a wide variety of sources such as broadcast, DVD players, cameras and video cassette recorders, in either NTSC, PAL or HD format and still occasionally SECAM, separate it into its component parts, luminance and chrominance, and output it in some digital video standard, with appropriate embedded timing signals. |
MEDIA_ENT_T_V4L2_SUBDEV_TUNER | TV and/or radio tuner |
Table L.4. Media entity flags
MEDIA_ENT_FL_DEFAULT | Default entity for its type. Used to discover the default audio, VBI and video devices, the default camera sensor, ... |
On success 0 is returned, on error -1 and the errno
variable is set appropriately. The generic error codes are described at the Generic Error Codes chapter.
The struct media_entity_desc id
references
a non-existing entity.