All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: Hans Verkuil <hverkuil@xs4all.nl>
Cc: linux-media@vger.kernel.org, Hans Verkuil <hans.verkuil@cisco.com>
Subject: Re: [RFCv1 PATCH 4/6] V4L2 spec: document the new V4L2 DV timings ioctls.
Date: Tue, 28 Feb 2012 08:01:01 -0300	[thread overview]
Message-ID: <4F4CB3ED.3080509@redhat.com> (raw)
In-Reply-To: <fdc4106fec26b04be848f3e0147bc635691d8f87.1328262332.git.hans.verkuil@cisco.com>

Em 03-02-2012 08:06, Hans Verkuil escreveu:
> From: Hans Verkuil <hans.verkuil@cisco.com>

The comments for patch 1 apply here. So, I won't repeat myself ;) There's just one
minor comment below.

> 
> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
> ---
>  Documentation/DocBook/media/v4l/v4l2.xml           |    3 +
>  .../DocBook/media/v4l/vidioc-dv-timings-cap.xml    |  205 ++++++++++++++++++++
>  .../DocBook/media/v4l/vidioc-enum-dv-timings.xml   |  113 +++++++++++
>  .../DocBook/media/v4l/vidioc-g-dv-timings.xml      |  120 +++++++++++-
>  .../DocBook/media/v4l/vidioc-query-dv-timings.xml  |   98 ++++++++++
>  5 files changed, 531 insertions(+), 8 deletions(-)
>  create mode 100644 Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml
>  create mode 100644 Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml
>  create mode 100644 Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml
> 
> diff --git a/Documentation/DocBook/media/v4l/v4l2.xml b/Documentation/DocBook/media/v4l/v4l2.xml
> index dce3fef..8bc2ccd 100644
> --- a/Documentation/DocBook/media/v4l/v4l2.xml
> +++ b/Documentation/DocBook/media/v4l/v4l2.xml
> @@ -481,10 +481,12 @@ and discussions on the V4L mailing list.</revremark>
>      &sub-dbg-g-chip-ident;
>      &sub-dbg-g-register;
>      &sub-dqevent;
> +    &sub-dv-timings-cap;
>      &sub-encoder-cmd;
>      &sub-enumaudio;
>      &sub-enumaudioout;
>      &sub-enum-dv-presets;
> +    &sub-enum-dv-timings;
>      &sub-enum-fmt;
>      &sub-enum-framesizes;
>      &sub-enum-frameintervals;
> @@ -519,6 +521,7 @@ and discussions on the V4L mailing list.</revremark>
>      &sub-querycap;
>      &sub-queryctrl;
>      &sub-query-dv-preset;
> +    &sub-query-dv-timings;
>      &sub-querystd;
>      &sub-prepare-buf;
>      &sub-reqbufs;
> diff --git a/Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml b/Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml
> new file mode 100644
> index 0000000..0477de1
> --- /dev/null
> +++ b/Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml
> @@ -0,0 +1,205 @@
> +<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>
> +
> +    <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:
> +-->
> diff --git a/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml b/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml
> new file mode 100644
> index 0000000..edd6964
> --- /dev/null
> +++ b/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml
> @@ -0,0 +1,113 @@
> +<refentry id="vidioc-enum-dv-timings">
> +  <refmeta>
> +    <refentrytitle>ioctl VIDIOC_ENUM_DV_TIMINGS</refentrytitle>
> +    &manvol;
> +  </refmeta>
> +
> +  <refnamediv>
> +    <refname>VIDIOC_ENUM_DV_TIMINGS</refname>
> +    <refpurpose>Enumerate supported Digital Video timings</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_enum_dv_timings *<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_ENUM_DV_TIMINGS</para>
> +	</listitem>
> +      </varlistentry>
> +      <varlistentry>
> +	<term><parameter>argp</parameter></term>
> +	<listitem>
> +	  <para></para>
> +	</listitem>
> +      </varlistentry>
> +    </variablelist>
> +  </refsect1>
> +
> +  <refsect1>
> +    <title>Description</title>
> +
> +    <para>While some DV receivers or transmitters support a wide range of timings, others
> +support only a limited number of timings. With this ioctl applications can enumerate a list
> +of known supported timings. Call &VIDIOC-DV-TIMINGS-CAP; to check if it also supports other
> +standards or even custom timings that are not in this list.</para>
> +
> +    <para>To query the available timings, applications initialize the
> +<structfield>index</structfield> field and zero the reserved array of &v4l2-enum-dv-timings;
> +and call the <constant>VIDIOC_ENUM_DV_TIMINGS</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-enum-dv-timings">
> +      <title>struct <structname>v4l2_enum_dv_timings</structname></title>
> +      <tgroup cols="3">
> +	&cs-str;
> +	<tbody valign="top">
> +	  <row>
> +	    <entry>__u32</entry>
> +	    <entry><structfield>index</structfield></entry>
> +	    <entry>Number of the DV timings, set by the
> +application.</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>&v4l2-dv-timings;</entry>
> +	    <entry><structfield>timings</structfield></entry>
> +	    <entry>The timings.</entry>
> +	  </row>
> +	</tbody>
> +      </tgroup>
> +    </table>
> +  </refsect1>
> +
> +  <refsect1>
> +    &return-value;
> +
> +    <variablelist>
> +      <varlistentry>
> +	<term><errorcode>EINVAL</errorcode></term>
> +	<listitem>
> +	  <para>The &v4l2-enum-dv-timings; <structfield>index</structfield>
> +is out of bounds.</para>
> +	</listitem>
> +      </varlistentry>
> +    </variablelist>
> +  </refsect1>
> +</refentry>
> +


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

Don't insert editor-specific parameters at the file! That violates CodingStyle.


> diff --git a/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml b/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml
> index 4a8648a..bffd26c 100644
> --- a/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml
> +++ b/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml
> @@ -83,12 +83,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 +126,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 +232,89 @@ 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_NTSC_COMPATIBLE</entry>
> +	    <entry>CEA-861 specific: set for CEA-861 formats with a framerate of a multiple
> +of six. These formats can be optionally played at 1 / 1.001 speed to
> +be compatible with the normal NTSC framerate of 29.97 frames per second.
> +This is a read-only flag, applications must not set this.
> +	    </entry>
> +	  </row>
> +	  <row>
> +	    <entry>V4L2_DV_FL_DIVIDE_CLOCK_BY_1_001</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_NTSC_COMPATIBLE 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;
> diff --git a/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml b/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml
> new file mode 100644
> index 0000000..9d7ac43
> --- /dev/null
> +++ b/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml
> @@ -0,0 +1,98 @@
> +<refentry id="vidioc-query-dv-timings">
> +  <refmeta>
> +    <refentrytitle>ioctl VIDIOC_QUERY_DV_TIMINGS</refentrytitle>
> +    &manvol;
> +  </refmeta>
> +
> +  <refnamediv>
> +    <refname>VIDIOC_QUERY_DV_TIMINGS</refname>
> +    <refpurpose>Sense the DV preset received by the current
> +input</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 *<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_QUERY_DV_TIMINGS</para>
> +	</listitem>
> +      </varlistentry>
> +      <varlistentry>
> +	<term><parameter>argp</parameter></term>
> +	<listitem>
> +	  <para></para>
> +	</listitem>
> +      </varlistentry>
> +    </variablelist>
> +  </refsect1>
> +
> +  <refsect1>
> +    <title>Description</title>
> +
> +    <para>The hardware may be able to detect the current DV timings
> +automatically, similar to sensing the video standard. To do so, applications
> +call <constant>VIDIOC_QUERY_DV_TIMINGS</constant> with a pointer to a
> +&v4l2-dv-timings;. Once the hardware detects the timings, it will fill in the
> +timings structure.
> +
> +If the timings could not be detected because there was no signal, then
> +<errorcode>ENOLINK</errorcode> is returned. If a signal was detected, but
> +it was unstable and the receiver could not lock to the signal, then
> +<errorcode>ENOLCK</errorcode> is returned. If the receiver could lock to the signal,
> +but the format is unsupported (e.g. because the pixelclock is out of range
> +of the hardware capabilities), then the driver fills in whatever timings it
> +could find and returns <errorcode>ERANGE</errorcode>. In that case the application
> +can call &VIDIOC-DV-TIMINGS-CAP; to compare the found timings with the hardware's
> +capabilities in order to give more precise feedback to the user.
> +</para>
> +  </refsect1>
> +
> +  <refsect1>
> +    &return-value;
> +
> +    <variablelist>
> +      <varlistentry>
> +	<term><errorcode>ENOLINK</errorcode></term>
> +	<listitem>
> +	  <para>No timings could be detected because no signal was found.
> +</para>
> +	</listitem>
> +      </varlistentry>
> +      <varlistentry>
> +	<term><errorcode>ENOLCK</errorcode></term>
> +	<listitem>
> +	  <para>The signal was unstable and the hardware could not lock on to it.
> +</para>
> +	</listitem>
> +      </varlistentry>
> +      <varlistentry>
> +	<term><errorcode>ERANGE</errorcode></term>
> +	<listitem>
> +	  <para>Timings were found, but they are out of range of the hardware
> +capabilities.
> +</para>
> +	</listitem>
> +      </varlistentry>
> +    </variablelist>
> +  </refsect1>
> +</refentry>


  reply	other threads:[~2012-02-28 11:01 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-03 10:06 [RFCv1 PATCH 0/6] Improved/New timings API Hans Verkuil
2012-02-03 10:06 ` [RFCv1 PATCH 1/6] videodev2.h: add enum/query/cap dv_timings ioctls Hans Verkuil
2012-02-03 10:06   ` [RFCv1 PATCH 2/6] v4l2 framework: add support for the new " Hans Verkuil
2012-02-03 10:06   ` [RFCv1 PATCH 3/6] v4l2-dv-timings.h: definitions for CEA-861 and VESA DMT timings Hans Verkuil
2012-02-03 10:06   ` [RFCv1 PATCH 4/6] V4L2 spec: document the new V4L2 DV timings ioctls Hans Verkuil
2012-02-28 11:01     ` Mauro Carvalho Chehab [this message]
2012-02-28 11:09       ` Hans Verkuil
2012-02-03 10:06   ` [RFCv1 PATCH 5/6] v4l2-common: add new support functions to match DV timings Hans Verkuil
2012-02-28 11:03     ` Mauro Carvalho Chehab
2012-02-28 11:18       ` Hans Verkuil
2012-02-28 11:26         ` Mauro Carvalho Chehab
2012-02-03 10:06   ` [RFCv1 PATCH 6/6] tvp7002: add support for the new dv timings API Hans Verkuil
2012-02-28 10:54   ` [RFCv1 PATCH 1/6] videodev2.h: add enum/query/cap dv_timings ioctls Mauro Carvalho Chehab
2012-02-28 11:06     ` Hans Verkuil
2012-02-28 11:14       ` Mauro Carvalho Chehab
2012-02-24  9:54 ` [RFCv1 PATCH 0/6] Improved/New timings API Hans Verkuil
2012-02-28 11:13   ` Mauro Carvalho Chehab
2012-02-28 12:42     ` Hans Verkuil

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F4CB3ED.3080509@redhat.com \
    --to=mchehab@redhat.com \
    --cc=hans.verkuil@cisco.com \
    --cc=hverkuil@xs4all.nl \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.