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

  <refnamediv>
    <refname>VIDIOC_DV_TIMINGS_CAP</refname>
    <refname>VIDIOC_SUBDEV_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, VIDIOC_SUBDEV_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 the <constant>VIDIOC_DV_TIMINGS_CAP</constant> ioctl on a video node
and the driver will fill in the structure. Note that drivers may return
different values after switching the video input or output.</para>

    <para>When implemented by the driver DV capabilities of subdevices can be
queried by calling the <constant>VIDIOC_SUBDEV_DV_TIMINGS_CAP</constant> ioctl
directly on a subdevice node. The capabilities are specific to inputs (for DV
receivers) or outputs (for DV transmitters), applications must specify the
desired pad number in the &v4l2-dv-timings-cap; <structfield>pad</structfield>
field. Attempts to query capabilities on a pad that doesn't support them will
return an &EINVAL;.</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>pad</structfield></entry>
	    <entry>Pad number as reported by the media controller API. This field
	    is only used when operating on a subdevice node. When operating on a
	    video node applications must set this field to zero.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>reserved</structfield>[2]</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>
