<refentry id="vidioc-enum-dv-presets">
  <refmeta>
    <refentrytitle>ioctl VIDIOC_ENUM_DV_PRESETS</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>VIDIOC_ENUM_DV_PRESETS</refname>
    <refpurpose>Enumerate supported Digital Video presets</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 v4l2_dv_enum_preset *<parameter>argp</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Arguments</title>

    <variablelist>
      <varlistentry>
	<term><parameter>fd</parameter></term>
	<listitem>
	  <para>&fd;</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>request</parameter></term>
	<listitem>
	  <para>VIDIOC_ENUM_DV_PRESETS</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 a DV preset, applications initialize the
<structfield>index</structfield> field and zero the reserved array of &v4l2-dv-enum-preset;
and call the <constant>VIDIOC_ENUM_DV_PRESETS</constant> ioctl with a pointer to this
structure. Drivers fill the rest of the structure or return an
&EINVAL; when the index is out of bounds. To enumerate all DV Presets supported,
applications shall begin at index zero, incrementing by one until the
driver returns <errorcode>EINVAL</errorcode>. Drivers may enumerate a
different set of DV presets after switching the video input or
output.</para>

    <table pgwide="1" frame="none" id="v4l2-dv-enum-preset">
      <title>struct <structname>v4l2_dv_enum_presets</structname></title>
      <tgroup cols="3">
	&cs-str;
	<tbody valign="top">
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>index</structfield></entry>
	    <entry>Number of the DV preset, set by the
application.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>preset</structfield></entry>
	    <entry>This field identifies one of the DV preset values listed in <xref linkend="v4l2-dv-presets-vals"/>.</entry>
	  </row>
	  <row>
	    <entry>__u8</entry>
	    <entry><structfield>name</structfield>[24]</entry>
	    <entry>Name of the preset, a NUL-terminated ASCII string, for example: "720P-60", "1080I-60". This information is
intended for the user.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>width</structfield></entry>
	    <entry>Width of the active video in pixels for the DV preset.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>height</structfield></entry>
	    <entry>Height of the active video in lines for the DV preset.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>reserved</structfield>[4]</entry>
	    <entry>Reserved for future extensions. Drivers must set the array to zero.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>

    <table pgwide="1" frame="none" id="v4l2-dv-presets-vals">
      <title>struct <structname>DV Presets</structname></title>
      <tgroup cols="3">
	&cs-str;
	<tbody valign="top">
	  <row>
	    <entry>Preset</entry>
	    <entry>Preset value</entry>
	    <entry>Description</entry>
	  </row>
	  <row>
	    <entry></entry>
	    <entry></entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_INVALID</entry>
	    <entry>0</entry>
	    <entry>Invalid preset value.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_480P59_94</entry>
	    <entry>1</entry>
	    <entry>720x480 progressive video at 59.94 fps as per BT.1362.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_576P50</entry>
	    <entry>2</entry>
	    <entry>720x576 progressive video at 50 fps as per BT.1362.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_720P24</entry>
	    <entry>3</entry>
	    <entry>1280x720 progressive video at 24 fps as per SMPTE 296M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_720P25</entry>
	    <entry>4</entry>
	    <entry>1280x720 progressive video at 25 fps as per SMPTE 296M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_720P30</entry>
	    <entry>5</entry>
	    <entry>1280x720 progressive video at 30 fps as per SMPTE 296M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_720P50</entry>
	    <entry>6</entry>
	    <entry>1280x720 progressive video at 50 fps as per SMPTE 296M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_720P59_94</entry>
	    <entry>7</entry>
	    <entry>1280x720 progressive video at 59.94 fps as per SMPTE 274M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_720P60</entry>
	    <entry>8</entry>
	    <entry>1280x720 progressive video at 60 fps as per SMPTE 274M/296M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_1080I29_97</entry>
	    <entry>9</entry>
	    <entry>1920x1080 interlaced video at 29.97 fps as per BT.1120/SMPTE 274M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_1080I30</entry>
	    <entry>10</entry>
	    <entry>1920x1080 interlaced video at 30 fps as per BT.1120/SMPTE 274M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_1080I25</entry>
	    <entry>11</entry>
	    <entry>1920x1080 interlaced video at 25 fps as per BT.1120.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_1080I50</entry>
	    <entry>12</entry>
	    <entry>1920x1080 interlaced video at 50 fps as per SMPTE 296M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_1080I60</entry>
	    <entry>13</entry>
	    <entry>1920x1080 interlaced video at 60 fps as per SMPTE 296M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_1080P24</entry>
	    <entry>14</entry>
	    <entry>1920x1080 progressive video at 24 fps as per SMPTE 296M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_1080P25</entry>
	    <entry>15</entry>
	    <entry>1920x1080 progressive video at 25 fps as per SMPTE 296M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_1080P30</entry>
	    <entry>16</entry>
	    <entry>1920x1080 progressive video at 30 fps as per SMPTE 296M.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_1080P50</entry>
	    <entry>17</entry>
	    <entry>1920x1080 progressive video at 50 fps as per BT.1120.</entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_1080P60</entry>
	    <entry>18</entry>
	    <entry>1920x1080 progressive video at 60 fps as per BT.1120.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>
  </refsect1>

  <refsect1>
    &return-value;

    <variablelist>
      <varlistentry>
	<term><errorcode>EINVAL</errorcode></term>
	<listitem>
	  <para>The &v4l2-dv-enum-preset; <structfield>index</structfield>
is out of bounds.</para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
</refentry>
