A lot of SOCs including Texas Instruments Davinci family mainly use video decoders as input devices. This patch adds a flag 'MEDIA_ENT_T_V4L2_SUBDEV_DECODER' media entity type for decoder's. Along side updates the documentation for this media entity type. Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com> Signed-off-by: Lad, Prabhakar <prabhakar.lad@ti.com> Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
		
			
				
	
	
		
			318 lines
		
	
	
	
		
			9.6 KiB
			
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			318 lines
		
	
	
	
		
			9.6 KiB
			
		
	
	
	
		
			XML
		
	
	
	
	
	
<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>
 | 
						|
      <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>
 | 
						|
    </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>
 | 
						|
	  <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>
 | 
						|
	</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>
 |