<refentry id="vidioc-dv-timings-cap">
  <refmeta>
    <refentrytitle>ioctl VIDIOC_DV_TIMINGS_CAP</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>VIDIOC_DV_TIMINGS_CAP</refname>
    <refpurpose>The capabilities of the Digital Video receiver/transmitter</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_timings_cap *<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_DV_TIMINGS_CAP</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>argp</parameter></term>
	<listitem>
	  <para></para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

    <note>
      <title>Experimental</title>
      <para>This is an <link linkend="experimental"> experimental </link>
      interface and may change in the future.</para>
    </note>

    <para>To query the available timings, applications initialize the
<structfield>index</structfield> field and zero the reserved array of &v4l2-dv-timings-cap;
and call the <constant>VIDIOC_DV_TIMINGS_CAP</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 supported DV timings,
applications shall begin at index zero, incrementing by one until the
driver returns <errorcode>EINVAL</errorcode>. Note that drivers may enumerate a
different set of DV timings after switching the video input or
output.</para>

    <table pgwide="1" frame="none" id="v4l2-bt-timings-cap">
      <title>struct <structname>v4l2_bt_timings_cap</structname></title>
      <tgroup cols="3">
	&cs-str;
	<tbody valign="top">
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>min_width</structfield></entry>
	    <entry>Minimum width of the active video in pixels.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>max_width</structfield></entry>
	    <entry>Maximum width of the active video in pixels.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>min_height</structfield></entry>
	    <entry>Minimum height of the active video in lines.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>max_height</structfield></entry>
	    <entry>Maximum height of the active video in lines.</entry>
	  </row>
	  <row>
	    <entry>__u64</entry>
	    <entry><structfield>min_pixelclock</structfield></entry>
	    <entry>Minimum pixelclock frequency in Hz.</entry>
	  </row>
	  <row>
	    <entry>__u64</entry>
	    <entry><structfield>max_pixelclock</structfield></entry>
	    <entry>Maximum pixelclock frequency in Hz.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>standards</structfield></entry>
	    <entry>The video standard(s) supported by the hardware.
	    See <xref linkend="dv-bt-standards"/> for a list of standards.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>capabilities</structfield></entry>
	    <entry>Several flags giving more information about the capabilities.
	    See <xref linkend="dv-bt-cap-capabilities"/> for a description of the flags.
	    </entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>reserved</structfield>[16]</entry>
	    <entry></entry>
	  </row>
	</tbody>
      </tgroup>
    </table>

    <table pgwide="1" frame="none" id="v4l2-dv-timings-cap">
      <title>struct <structname>v4l2_dv_timings_cap</structname></title>
      <tgroup cols="4">
	&cs-str;
	<tbody valign="top">
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>type</structfield></entry>
	    <entry>Type of DV timings as listed in <xref linkend="dv-timing-types"/>.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>reserved</structfield>[3]</entry>
	    <entry>Reserved for future extensions. Drivers must set the array to zero.</entry>
	  </row>
	  <row>
	    <entry>union</entry>
	    <entry><structfield></structfield></entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry></entry>
	    <entry>&v4l2-bt-timings-cap;</entry>
	    <entry><structfield>bt</structfield></entry>
	    <entry>BT.656/1120 timings capabilities of the hardware.</entry>
	  </row>
	  <row>
	    <entry></entry>
	    <entry>__u32</entry>
	    <entry><structfield>raw_data</structfield>[32]</entry>
	    <entry></entry>
	  </row>
	</tbody>
      </tgroup>
    </table>

    <table pgwide="1" frame="none" id="dv-bt-cap-capabilities">
      <title>DV BT Timing capabilities</title>
      <tgroup cols="2">
	&cs-str;
	<tbody valign="top">
	  <row>
	    <entry>Flag</entry>
	    <entry>Description</entry>
	  </row>
	  <row>
	    <entry></entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_BT_CAP_INTERLACED</entry>
	    <entry>Interlaced formats are supported.
	    </entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_BT_CAP_PROGRESSIVE</entry>
	    <entry>Progressive formats are supported.
	    </entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_BT_CAP_REDUCED_BLANKING</entry>
	    <entry>CVT/GTF specific: the timings can make use of reduced blanking (CVT)
or the 'Secondary GTF' curve (GTF).
	    </entry>
	  </row>
	  <row>
	    <entry>V4L2_DV_BT_CAP_CUSTOM</entry>
	    <entry>Can support non-standard timings, i.e. timings not belonging to the
standards set in the <structfield>standards</structfield> field.
	    </entry>
	  </row>
	</tbody>
      </tgroup>
    </table>
  </refsect1>

  <refsect1>
    &return-value;
  </refsect1>
</refentry>

<!--
Local Variables:
mode: sgml
sgml-parent-document: "v4l2.sgml"
indent-tabs-mode: nil
End:
-->
