1<refentry id="vidioc-enum-dv-timings"> 2 <refmeta> 3 <refentrytitle>ioctl VIDIOC_ENUM_DV_TIMINGS, VIDIOC_SUBDEV_ENUM_DV_TIMINGS</refentrytitle> 4 &manvol; 5 </refmeta> 6 7 <refnamediv> 8 <refname>VIDIOC_ENUM_DV_TIMINGS</refname> 9 <refname>VIDIOC_SUBDEV_ENUM_DV_TIMINGS</refname> 10 <refpurpose>Enumerate supported Digital Video timings</refpurpose> 11 </refnamediv> 12 13 <refsynopsisdiv> 14 <funcsynopsis> 15 <funcprototype> 16 <funcdef>int <function>ioctl</function></funcdef> 17 <paramdef>int <parameter>fd</parameter></paramdef> 18 <paramdef>int <parameter>request</parameter></paramdef> 19 <paramdef>struct v4l2_enum_dv_timings *<parameter>argp</parameter></paramdef> 20 </funcprototype> 21 </funcsynopsis> 22 </refsynopsisdiv> 23 24 <refsect1> 25 <title>Arguments</title> 26 27 <variablelist> 28 <varlistentry> 29 <term><parameter>fd</parameter></term> 30 <listitem> 31 <para>&fd;</para> 32 </listitem> 33 </varlistentry> 34 <varlistentry> 35 <term><parameter>request</parameter></term> 36 <listitem> 37 <para>VIDIOC_ENUM_DV_TIMINGS, VIDIOC_SUBDEV_ENUM_DV_TIMINGS</para> 38 </listitem> 39 </varlistentry> 40 <varlistentry> 41 <term><parameter>argp</parameter></term> 42 <listitem> 43 <para></para> 44 </listitem> 45 </varlistentry> 46 </variablelist> 47 </refsect1> 48 49 <refsect1> 50 <title>Description</title> 51 52 <note> 53 <title>Experimental</title> 54 <para>This is an <link linkend="experimental"> experimental </link> 55 interface and may change in the future.</para> 56 </note> 57 58 <para>While some DV receivers or transmitters support a wide range of timings, others 59support only a limited number of timings. With this ioctl applications can enumerate a list 60of known supported timings. Call &VIDIOC-DV-TIMINGS-CAP; to check if it also supports other 61standards or even custom timings that are not in this list.</para> 62 63 <para>To query the available timings, applications initialize the 64<structfield>index</structfield> field and zero the reserved array of &v4l2-enum-dv-timings; 65and call the <constant>VIDIOC_ENUM_DV_TIMINGS</constant> ioctl on a video node with a 66pointer to this structure. Drivers fill the rest of the structure or return an 67&EINVAL; when the index is out of bounds. To enumerate all supported DV timings, 68applications shall begin at index zero, incrementing by one until the 69driver returns <errorcode>EINVAL</errorcode>. Note that drivers may enumerate a 70different set of DV timings after switching the video input or 71output.</para> 72 73 <para>When implemented by the driver DV timings of subdevices can be queried 74by calling the <constant>VIDIOC_SUBDEV_ENUM_DV_TIMINGS</constant> ioctl directly 75on a subdevice node. The DV timings are specific to inputs (for DV receivers) or 76outputs (for DV transmitters), applications must specify the desired pad number 77in the &v4l2-enum-dv-timings; <structfield>pad</structfield> field. Attempts to 78enumerate timings on a pad that doesn't support them will return an &EINVAL;.</para> 79 80 <table pgwide="1" frame="none" id="v4l2-enum-dv-timings"> 81 <title>struct <structname>v4l2_enum_dv_timings</structname></title> 82 <tgroup cols="3"> 83 &cs-str; 84 <tbody valign="top"> 85 <row> 86 <entry>__u32</entry> 87 <entry><structfield>index</structfield></entry> 88 <entry>Number of the DV timings, set by the 89application.</entry> 90 </row> 91 <row> 92 <entry>__u32</entry> 93 <entry><structfield>pad</structfield></entry> 94 <entry>Pad number as reported by the media controller API. This field 95 is only used when operating on a subdevice node. When operating on a 96 video node applications must set this field to zero.</entry> 97 </row> 98 <row> 99 <entry>__u32</entry> 100 <entry><structfield>reserved</structfield>[2]</entry> 101 <entry>Reserved for future extensions. Drivers and applications must 102 set the array to zero.</entry> 103 </row> 104 <row> 105 <entry>&v4l2-dv-timings;</entry> 106 <entry><structfield>timings</structfield></entry> 107 <entry>The timings.</entry> 108 </row> 109 </tbody> 110 </tgroup> 111 </table> 112 </refsect1> 113 114 <refsect1> 115 &return-value; 116 117 <variablelist> 118 <varlistentry> 119 <term><errorcode>EINVAL</errorcode></term> 120 <listitem> 121 <para>The &v4l2-enum-dv-timings; <structfield>index</structfield> 122is out of bounds or the <structfield>pad</structfield> number is invalid.</para> 123 </listitem> 124 </varlistentry> 125 <varlistentry> 126 <term><errorcode>ENODATA</errorcode></term> 127 <listitem> 128 <para>Digital video presets are not supported for this input or output.</para> 129 </listitem> 130 </varlistentry> 131 </variablelist> 132 </refsect1> 133</refentry> 134