<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 capabilities of the DV receiver/transmitter applications can call
this ioctl and the driver will fill in the structure. Note that drivers may return
different values 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>Reserved for future extensions. Drivers must set the array to zero.</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:
-->
