| 
									
										
										
										
											2009-12-09 08:40:01 -03:00
										 |  |  | <refentry id="media-ioc-enum-entities"> | 
					
						
							|  |  |  |   <refmeta> | 
					
						
							|  |  |  |     <refentrytitle>ioctl MEDIA_IOC_ENUM_ENTITIES</refentrytitle> | 
					
						
							|  |  |  |     &manvol; | 
					
						
							|  |  |  |   </refmeta> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <refnamediv> | 
					
						
							|  |  |  |     <refname>MEDIA_IOC_ENUM_ENTITIES</refname> | 
					
						
							|  |  |  |     <refpurpose>Enumerate entities and their properties</refpurpose> | 
					
						
							|  |  |  |   </refnamediv> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <refsynopsisdiv> | 
					
						
							|  |  |  |     <funcsynopsis> | 
					
						
							|  |  |  |       <funcprototype> | 
					
						
							|  |  |  | 	<funcdef>int <function>ioctl</function></funcdef> | 
					
						
							|  |  |  | 	<paramdef>int <parameter>fd</parameter></paramdef> | 
					
						
							|  |  |  | 	<paramdef>int <parameter>request</parameter></paramdef> | 
					
						
							|  |  |  | 	<paramdef>struct media_entity_desc *<parameter>argp</parameter></paramdef> | 
					
						
							|  |  |  |       </funcprototype> | 
					
						
							|  |  |  |     </funcsynopsis> | 
					
						
							|  |  |  |   </refsynopsisdiv> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <refsect1> | 
					
						
							|  |  |  |     <title>Arguments</title> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <variablelist> | 
					
						
							|  |  |  |       <varlistentry> | 
					
						
							|  |  |  | 	<term><parameter>fd</parameter></term> | 
					
						
							|  |  |  | 	<listitem> | 
					
						
							|  |  |  | 	  <para>File descriptor returned by | 
					
						
							|  |  |  | 	  <link linkend='media-func-open'><function>open()</function></link>.</para> | 
					
						
							|  |  |  | 	</listitem> | 
					
						
							|  |  |  |       </varlistentry> | 
					
						
							|  |  |  |       <varlistentry> | 
					
						
							|  |  |  | 	<term><parameter>request</parameter></term> | 
					
						
							|  |  |  | 	<listitem> | 
					
						
							|  |  |  | 	  <para>MEDIA_IOC_ENUM_ENTITIES</para> | 
					
						
							|  |  |  | 	</listitem> | 
					
						
							|  |  |  |       </varlistentry> | 
					
						
							|  |  |  |       <varlistentry> | 
					
						
							|  |  |  | 	<term><parameter>argp</parameter></term> | 
					
						
							|  |  |  | 	<listitem> | 
					
						
							|  |  |  | 	  <para></para> | 
					
						
							|  |  |  | 	</listitem> | 
					
						
							|  |  |  |       </varlistentry> | 
					
						
							|  |  |  |     </variablelist> | 
					
						
							|  |  |  |   </refsect1> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <refsect1> | 
					
						
							|  |  |  |     <title>Description</title> | 
					
						
							|  |  |  |     <para>To query the attributes of an entity, applications set the id field | 
					
						
							|  |  |  |     of a &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; when the id is invalid.</para> | 
					
						
							|  |  |  |     <para>Entities can be enumerated by or'ing the id with the | 
					
						
							|  |  |  |     <constant>MEDIA_ENT_ID_FLAG_NEXT</constant> flag. The driver will return | 
					
						
							|  |  |  |     information about the entity with the smallest id strictly larger than the | 
					
						
							|  |  |  |     requested one ('next entity'), or the &EINVAL; if there is none.</para> | 
					
						
							|  |  |  |     <para>Entity IDs can be non-contiguous. Applications must | 
					
						
							|  |  |  |     <emphasis>not</emphasis> try to enumerate entities by calling | 
					
						
							|  |  |  |     MEDIA_IOC_ENUM_ENTITIES with increasing id's until they get an error.</para> | 
					
						
							|  |  |  |     <para>Two or more entities that share a common non-zero | 
					
						
							|  |  |  |     <structfield>group_id</structfield> value are considered as logically | 
					
						
							|  |  |  |     grouped. Groups are used to report | 
					
						
							|  |  |  |     <itemizedlist> | 
					
						
							| 
									
										
										
										
											2011-03-11 16:22:21 -03:00
										 |  |  |       <listitem><para>ALSA, VBI and video nodes that carry the same media | 
					
						
							|  |  |  |       stream</para></listitem> | 
					
						
							|  |  |  |       <listitem><para>lens and flash controllers associated with a sensor</para></listitem> | 
					
						
							| 
									
										
										
										
											2009-12-09 08:40:01 -03:00
										 |  |  |     </itemizedlist> | 
					
						
							|  |  |  |     </para> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <table pgwide="1" frame="none" id="media-entity-desc"> | 
					
						
							|  |  |  |       <title>struct <structname>media_entity_desc</structname></title> | 
					
						
							|  |  |  |       <tgroup cols="5"> | 
					
						
							|  |  |  | 	<colspec colname="c1" /> | 
					
						
							|  |  |  | 	<colspec colname="c2" /> | 
					
						
							|  |  |  | 	<colspec colname="c3" /> | 
					
						
							|  |  |  | 	<colspec colname="c4" /> | 
					
						
							|  |  |  | 	<colspec colname="c5" /> | 
					
						
							|  |  |  | 	<tbody valign="top"> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry>__u32</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>id</structfield></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>Entity id, set by the application. When the id is or'ed with | 
					
						
							|  |  |  | 	    <constant>MEDIA_ENT_ID_FLAG_NEXT</constant>, the driver clears the | 
					
						
							|  |  |  | 	    flag and returns the first entity with a larger id.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry>char</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>name</structfield>[32]</entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>Entity name as an UTF-8 NULL-terminated string.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry>__u32</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>type</structfield></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>Entity type, see <xref linkend="media-entity-type" /> for details.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry>__u32</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>revision</structfield></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>Entity revision in a driver/hardware specific format.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry>__u32</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>flags</structfield></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>Entity flags, see <xref linkend="media-entity-flag" /> for details.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry>__u32</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>group_id</structfield></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>Entity group ID</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry>__u16</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>pads</structfield></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>Number of pads</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry>__u16</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>links</structfield></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>Total number of outbound links. Inbound links are not counted | 
					
						
							|  |  |  | 	    in this field.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry>union</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>struct</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>v4l</structfield></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>Valid for V4L sub-devices and nodes only.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>__u32</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>major</structfield></entry> | 
					
						
							|  |  |  | 	    <entry>V4L device node major number. For V4L sub-devices with no | 
					
						
							|  |  |  | 	    device node, set by the driver to 0.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>__u32</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>minor</structfield></entry> | 
					
						
							|  |  |  | 	    <entry>V4L device node minor number. For V4L sub-devices with no | 
					
						
							|  |  |  | 	    device node, set by the driver to 0.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>struct</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>fb</structfield></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>Valid for frame buffer nodes only.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>__u32</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>major</structfield></entry> | 
					
						
							|  |  |  | 	    <entry>Frame buffer device node major number.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>__u32</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>minor</structfield></entry> | 
					
						
							|  |  |  | 	    <entry>Frame buffer device node minor number.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>struct</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>alsa</structfield></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>Valid for ALSA devices only.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>__u32</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>card</structfield></entry> | 
					
						
							|  |  |  | 	    <entry>ALSA card number</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>__u32</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>device</structfield></entry> | 
					
						
							|  |  |  | 	    <entry>ALSA device number</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>__u32</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>subdevice</structfield></entry> | 
					
						
							|  |  |  | 	    <entry>ALSA sub-device number</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>int</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>dvb</structfield></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>DVB card number</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry>__u8</entry> | 
					
						
							|  |  |  | 	    <entry><structfield>raw</structfield>[180]</entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	    <entry></entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	</tbody> | 
					
						
							|  |  |  |       </tgroup> | 
					
						
							|  |  |  |     </table> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <table frame="none" pgwide="1" id="media-entity-type"> | 
					
						
							|  |  |  |       <title>Media entity types</title> | 
					
						
							|  |  |  |       <tgroup cols="2"> | 
					
						
							|  |  |  |         <colspec colname="c1"/> | 
					
						
							|  |  |  |         <colspec colname="c2"/> | 
					
						
							|  |  |  | 	<tbody valign="top"> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry><constant>MEDIA_ENT_T_DEVNODE</constant></entry> | 
					
						
							|  |  |  | 	    <entry>Unknown device node</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry><constant>MEDIA_ENT_T_DEVNODE_V4L</constant></entry> | 
					
						
							|  |  |  | 	    <entry>V4L video, radio or vbi device node</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry><constant>MEDIA_ENT_T_DEVNODE_FB</constant></entry> | 
					
						
							|  |  |  | 	    <entry>Frame buffer device node</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry><constant>MEDIA_ENT_T_DEVNODE_ALSA</constant></entry> | 
					
						
							|  |  |  | 	    <entry>ALSA card</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry><constant>MEDIA_ENT_T_DEVNODE_DVB</constant></entry> | 
					
						
							|  |  |  | 	    <entry>DVB card</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry><constant>MEDIA_ENT_T_V4L2_SUBDEV</constant></entry> | 
					
						
							|  |  |  | 	    <entry>Unknown V4L sub-device</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry><constant>MEDIA_ENT_T_V4L2_SUBDEV_SENSOR</constant></entry> | 
					
						
							|  |  |  | 	    <entry>Video sensor</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry><constant>MEDIA_ENT_T_V4L2_SUBDEV_FLASH</constant></entry> | 
					
						
							|  |  |  | 	    <entry>Flash controller</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry><constant>MEDIA_ENT_T_V4L2_SUBDEV_LENS</constant></entry> | 
					
						
							|  |  |  | 	    <entry>Lens controller</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							| 
									
										
										
										
											2013-02-07 13:48:51 -03:00
										 |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry><constant>MEDIA_ENT_T_V4L2_SUBDEV_DECODER</constant></entry> | 
					
						
							|  |  |  | 	    <entry>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.</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							| 
									
										
										
										
											2009-12-09 08:40:01 -03:00
										 |  |  | 	</tbody> | 
					
						
							|  |  |  |       </tgroup> | 
					
						
							|  |  |  |     </table> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <table frame="none" pgwide="1" id="media-entity-flag"> | 
					
						
							|  |  |  |       <title>Media entity flags</title> | 
					
						
							|  |  |  |       <tgroup cols="2"> | 
					
						
							|  |  |  |         <colspec colname="c1"/> | 
					
						
							|  |  |  |         <colspec colname="c2"/> | 
					
						
							|  |  |  | 	<tbody valign="top"> | 
					
						
							|  |  |  | 	  <row> | 
					
						
							|  |  |  | 	    <entry><constant>MEDIA_ENT_FL_DEFAULT</constant></entry> | 
					
						
							|  |  |  | 	    <entry>Default entity for its type. Used to discover the default | 
					
						
							|  |  |  | 	    audio, VBI and video devices, the default camera sensor, ...</entry> | 
					
						
							|  |  |  | 	  </row> | 
					
						
							|  |  |  | 	</tbody> | 
					
						
							|  |  |  |       </tgroup> | 
					
						
							|  |  |  |     </table> | 
					
						
							|  |  |  |   </refsect1> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <refsect1> | 
					
						
							|  |  |  |     &return-value; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <variablelist> | 
					
						
							|  |  |  |       <varlistentry> | 
					
						
							|  |  |  | 	<term><errorcode>EINVAL</errorcode></term> | 
					
						
							|  |  |  | 	<listitem> | 
					
						
							|  |  |  | 	  <para>The &media-entity-desc; <structfield>id</structfield> references | 
					
						
							|  |  |  | 	  a non-existing entity.</para> | 
					
						
							|  |  |  | 	</listitem> | 
					
						
							|  |  |  |       </varlistentry> | 
					
						
							|  |  |  |     </variablelist> | 
					
						
							|  |  |  |   </refsect1> | 
					
						
							|  |  |  | </refentry> |