Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze
[sfrench/cifs-2.6.git] / Documentation / DocBook / media / v4l / vidioc-g-dv-timings.xml
index 4a8648ae9a63ad373e6a1ab8ccdbbf843963a78f..eda1a2991bbe4382f717c5407295407220250161 100644 (file)
@@ -7,7 +7,7 @@
   <refnamediv>
     <refname>VIDIOC_G_DV_TIMINGS</refname>
     <refname>VIDIOC_S_DV_TIMINGS</refname>
-    <refpurpose>Get or set custom DV timings for input or output</refpurpose>
+    <refpurpose>Get or set DV timings for input or output</refpurpose>
   </refnamediv>
 
   <refsynopsisdiv>
 
   <refsect1>
     <title>Description</title>
-    <para>To set custom DV timings for the input or output, applications use the
-<constant>VIDIOC_S_DV_TIMINGS</constant> ioctl and to get the current custom timings,
+    <para>To set DV timings for the input or output, applications use the
+<constant>VIDIOC_S_DV_TIMINGS</constant> ioctl and to get the current timings,
 applications use the <constant>VIDIOC_G_DV_TIMINGS</constant> ioctl. The detailed timing
 information is filled in using the structure &v4l2-dv-timings;. These ioctls take
 a pointer to the &v4l2-dv-timings; structure as argument. If the ioctl is not supported
 or the timing values are not correct, the driver returns &EINVAL;.</para>
+<para>The <filename>linux/v4l2-dv-timings.h</filename> header can be used to get the
+timings of the formats in the <xref linkend="cea861" /> and <xref linkend="vesadmt" />
+standards.</para>
   </refsect1>
 
   <refsect1>
@@ -83,12 +86,13 @@ or the timing values are not correct, the driver returns &EINVAL;.</para>
          <row>
            <entry>__u32</entry>
            <entry><structfield>width</structfield></entry>
-           <entry>Width of the active video in pixels</entry>
+           <entry>Width of the active video in pixels.</entry>
          </row>
          <row>
            <entry>__u32</entry>
            <entry><structfield>height</structfield></entry>
-           <entry>Height of the active video in lines</entry>
+           <entry>Height of the active video frame in lines. So for interlaced formats the
+           height of the active video in each field is <structfield>height</structfield>/2.</entry>
          </row>
          <row>
            <entry>__u32</entry>
@@ -125,32 +129,52 @@ bit 0 (V4L2_DV_VSYNC_POS_POL) is for vertical sync polarity and bit 1 (V4L2_DV_H
          <row>
            <entry>__u32</entry>
            <entry><structfield>vfrontporch</structfield></entry>
-           <entry>Vertical front porch in lines</entry>
+           <entry>Vertical front porch in lines. For interlaced formats this refers to the
+           odd field (aka field 1).</entry>
          </row>
          <row>
            <entry>__u32</entry>
            <entry><structfield>vsync</structfield></entry>
-           <entry>Vertical sync length in lines</entry>
+           <entry>Vertical sync length in lines. For interlaced formats this refers to the
+           odd field (aka field 1).</entry>
          </row>
          <row>
            <entry>__u32</entry>
            <entry><structfield>vbackporch</structfield></entry>
-           <entry>Vertical back porch in lines</entry>
+           <entry>Vertical back porch in lines. For interlaced formats this refers to the
+           odd field (aka field 1).</entry>
          </row>
          <row>
            <entry>__u32</entry>
            <entry><structfield>il_vfrontporch</structfield></entry>
-           <entry>Vertical front porch in lines for bottom field of interlaced field formats</entry>
+           <entry>Vertical front porch in lines for the even field (aka field 2) of
+           interlaced field formats.</entry>
          </row>
          <row>
            <entry>__u32</entry>
            <entry><structfield>il_vsync</structfield></entry>
-           <entry>Vertical sync length in lines for bottom field of interlaced field formats</entry>
+           <entry>Vertical sync length in lines for the even field (aka field 2) of
+           interlaced field formats.</entry>
          </row>
          <row>
            <entry>__u32</entry>
            <entry><structfield>il_vbackporch</structfield></entry>
-           <entry>Vertical back porch in lines for bottom field of interlaced field formats</entry>
+           <entry>Vertical back porch in lines for the even field (aka field 2) of
+           interlaced field formats.</entry>
+         </row>
+         <row>
+           <entry>__u32</entry>
+           <entry><structfield>standards</structfield></entry>
+           <entry>The video standard(s) this format belongs to. This will be filled in by
+           the driver. Applications must set this to 0. See <xref linkend="dv-bt-standards"/>
+           for a list of standards.</entry>
+         </row>
+         <row>
+           <entry>__u32</entry>
+           <entry><structfield>flags</structfield></entry>
+           <entry>Several flags giving more information about the format.
+           See <xref linkend="dv-bt-flags"/> for a description of the flags.
+           </entry>
          </row>
        </tbody>
       </tgroup>
@@ -211,6 +235,90 @@ bit 0 (V4L2_DV_VSYNC_POS_POL) is for vertical sync polarity and bit 1 (V4L2_DV_H
        </tbody>
       </tgroup>
     </table>
+    <table pgwide="1" frame="none" id="dv-bt-standards">
+      <title>DV BT Timing standards</title>
+      <tgroup cols="2">
+       &cs-str;
+       <tbody valign="top">
+         <row>
+           <entry>Timing standard</entry>
+           <entry>Description</entry>
+         </row>
+         <row>
+           <entry></entry>
+           <entry></entry>
+         </row>
+         <row>
+           <entry>V4L2_DV_BT_STD_CEA861</entry>
+           <entry>The timings follow the CEA-861 Digital TV Profile standard</entry>
+         </row>
+         <row>
+           <entry>V4L2_DV_BT_STD_DMT</entry>
+           <entry>The timings follow the VESA Discrete Monitor Timings standard</entry>
+         </row>
+         <row>
+           <entry>V4L2_DV_BT_STD_CVT</entry>
+           <entry>The timings follow the VESA Coordinated Video Timings standard</entry>
+         </row>
+         <row>
+           <entry>V4L2_DV_BT_STD_GTF</entry>
+           <entry>The timings follow the VESA Generalized Timings Formula standard</entry>
+         </row>
+       </tbody>
+      </tgroup>
+    </table>
+    <table pgwide="1" frame="none" id="dv-bt-flags">
+      <title>DV BT Timing flags</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_FL_REDUCED_BLANKING</entry>
+           <entry>CVT/GTF specific: the timings use reduced blanking (CVT) or the 'Secondary
+GTF' curve (GTF). In both cases the horizontal and/or vertical blanking
+intervals are reduced, allowing a higher resolution over the same
+bandwidth. This is a read-only flag, applications must not set this.
+           </entry>
+         </row>
+         <row>
+           <entry>V4L2_DV_FL_CAN_REDUCE_FPS</entry>
+           <entry>CEA-861 specific: set for CEA-861 formats with a framerate that is a multiple
+of six. These formats can be optionally played at 1 / 1.001 speed to
+be compatible with 60 Hz based standards such as NTSC and PAL-M that use a framerate of
+29.97 frames per second. If the transmitter can't generate such frequencies, then the
+flag will also be cleared. This is a read-only flag, applications must not set this.
+           </entry>
+         </row>
+         <row>
+           <entry>V4L2_DV_FL_REDUCED_FPS</entry>
+           <entry>CEA-861 specific: only valid for video transmitters, the flag is cleared
+by receivers. It is also only valid for formats with the V4L2_DV_FL_CAN_REDUCE_FPS flag
+set, for other formats the flag will be cleared by the driver.
+
+If the application sets this flag, then the pixelclock used to set up the transmitter is
+divided by 1.001 to make it compatible with NTSC framerates. If the transmitter
+can't generate such frequencies, then the flag will also be cleared.
+           </entry>
+         </row>
+         <row>
+           <entry>V4L2_DV_FL_HALF_LINE</entry>
+           <entry>Specific to interlaced formats: if set, then field 1 (aka the odd field)
+is really one half-line longer and field 2 (aka the even field) is really one half-line
+shorter, so each field has exactly the same number of half-lines. Whether half-lines can be
+detected or used depends on the hardware.
+           </entry>
+         </row>
+       </tbody>
+      </tgroup>
+    </table>
   </refsect1>
   <refsect1>
     &return-value;