summaryrefslogtreecommitdiff
path: root/v4l2-spec
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2009-01-18 14:23:26 +0100
committerHans Verkuil <hverkuil@xs4all.nl>2009-01-18 14:23:26 +0100
commitade8e6ad74cfe5e1f764d49807ddf09a3138ca0d (patch)
treebbe56a56d77fbed1944360910b590c6fce38c746 /v4l2-spec
parent0e5ca174b657de9d1f6c75609c81279cc35e8d49 (diff)
downloadmediapointer-dvb-s2-ade8e6ad74cfe5e1f764d49807ddf09a3138ca0d.tar.gz
mediapointer-dvb-s2-ade8e6ad74cfe5e1f764d49807ddf09a3138ca0d.tar.bz2
v4l2-spec: document VIDIOC_S_HW_FREQ_SEEK
From: Hans Verkuil <hverkuil@xs4all.nl> Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'v4l2-spec')
-rw-r--r--v4l2-spec/Makefile3
-rw-r--r--v4l2-spec/compat.sgml10
-rw-r--r--v4l2-spec/v4l2.sgml1
-rw-r--r--v4l2-spec/vidioc-querycap.sgml6
-rw-r--r--v4l2-spec/vidioc-s-hw-freq-seek.sgml138
5 files changed, 158 insertions, 0 deletions
diff --git a/v4l2-spec/Makefile b/v4l2-spec/Makefile
index d7fed7edd..9da6c6d61 100644
--- a/v4l2-spec/Makefile
+++ b/v4l2-spec/Makefile
@@ -87,6 +87,7 @@ SGMLS = \
vidioc-queryctrl.sgml \
vidioc-querystd.sgml \
vidioc-reqbufs.sgml \
+ vidioc-s-hw-freq-seek.sgml \
vidioc-streamon.sgml \
PDFPICS = \
@@ -185,6 +186,7 @@ IOCTLS = \
VIDIOC_S_FBUF \
VIDIOC_S_FMT \
VIDIOC_S_FREQUENCY \
+ VIDIOC_S_HW_FREQ_SEEK \
VIDIOC_S_INPUT \
VIDIOC_S_JPEGCOMP \
VIDIOC_S_MPEGCOMP \
@@ -240,6 +242,7 @@ STRUCTS = \
v4l2_frmsize_discrete \
v4l2_frmsize_stepwise \
v4l2_frmsizeenum \
+ v4l2_hw_freq_seek \
v4l2_input \
v4l2_jpegcompression \
v4l2_modulator \
diff --git a/v4l2-spec/compat.sgml b/v4l2-spec/compat.sgml
index 5c1815182..62930ad25 100644
--- a/v4l2-spec/compat.sgml
+++ b/v4l2-spec/compat.sgml
@@ -2204,6 +2204,16 @@ interface in Linux 2.6.18, where finally removed from the
</section>
<section>
+ <title>V4L2 in Linux 2.6.27</title>
+ <orderedlist>
+ <listitem>
+ <para>The &VIDIOC-S-HW-FREQ-SEEK; ioctl and the
+<constant>V4L2_CAP_HW_FREQ_SEEK</constant> capability were added.</para>
+ </listitem>
+ </orderedlist>
+ </section>
+
+ <section>
<title>V4L2 in Linux 2.6.29</title>
<orderedlist>
<listitem>
diff --git a/v4l2-spec/v4l2.sgml b/v4l2-spec/v4l2.sgml
index 735ebc320..e487f2d80 100644
--- a/v4l2-spec/v4l2.sgml
+++ b/v4l2-spec/v4l2.sgml
@@ -427,6 +427,7 @@ and <ulink url="http://linuxtv.org/downloads/video4linux/API/V4L2_API">http://li
&sub-queryctrl;
&sub-querystd;
&sub-reqbufs;
+ &sub-s-hw-freq-seek;
&sub-streamon;
<!-- End of ioctls. -->
&sub-mmap;
diff --git a/v4l2-spec/vidioc-querycap.sgml b/v4l2-spec/vidioc-querycap.sgml
index 89aa84cf6..2715289d8 100644
--- a/v4l2-spec/vidioc-querycap.sgml
+++ b/v4l2-spec/vidioc-querycap.sgml
@@ -200,6 +200,12 @@ versa.<footnote><para>The &v4l2-framebuffer; lacks an
driver capabilities.</para></footnote></entry>
</row>
<row>
+ <entry><constant>V4L2_CAP_HW_FREQ_SEEK</constant></entry>
+ <entry>0x00000400</entry>
+ <entry>The device supports the &VIDIOC-S-HW-FREQ-SEEK; ioctl for
+hardware frequency seeking.</entry>
+ </row>
+ <row>
<entry><constant>V4L2_CAP_TUNER</constant></entry>
<entry>0x00010000</entry>
<entry>The device has some sort of tuner or modulator to
diff --git a/v4l2-spec/vidioc-s-hw-freq-seek.sgml b/v4l2-spec/vidioc-s-hw-freq-seek.sgml
new file mode 100644
index 000000000..7ef695a83
--- /dev/null
+++ b/v4l2-spec/vidioc-s-hw-freq-seek.sgml
@@ -0,0 +1,138 @@
+<refentry id="vidioc-s-hw-freq-seek">
+ <refmeta>
+ <refentrytitle>ioctl VIDIOC_S_HW_FREQ_SEEK</refentrytitle>
+ &manvol;
+ </refmeta>
+
+ <refnamediv>
+ <refname>VIDIOC_S_HW_FREQ_SEEK</refname>
+ <refpurpose>Perform a hardware frequency seek</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_hw_freq_seek
+*<parameter>argp</parameter></paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <funcsynopsis>
+ <funcprototype>
+ <funcdef>int <function>ioctl</function></funcdef>
+ <paramdef>int <parameter>fd</parameter></paramdef>
+ <paramdef>int <parameter>request</parameter></paramdef>
+ <paramdef>struct v4l2_hw_freq_seek
+*<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_S_HW_FREQ_SEEK</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>argp</parameter></term>
+ <listitem>
+ <para></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
+ <refsect1>
+ <title>Description</title>
+
+ <para>Start a hardware frequency seek from the current frequency.
+To do this applications initialize the <structfield>tuner</structfield>,
+<structfield>type</structfield>, <structfield>seek_upward</structfield> and
+<structfield>wrap_around</structfield> fields, and zero out the
+<structfield>reserved</structfield> array of a &v4l2-hw-freq-seek; and
+call the <constant>VIDIOC_S_HW_FREQ_SEEK</constant> ioctl with a pointer
+to this structure.</para>
+
+ <para>This ioctl is supported if the <constant>V4L2_CAP_HW_FREQ_SEEK</constant> capability is set.</para>
+
+ <table pgwide="1" frame="none" id="v4l2-hw-freq-seek">
+ <title>struct <structname>v4l2_hw_freq_seek</structname></title>
+ <tgroup cols="3">
+ &cs-str;
+ <tbody valign="top">
+ <row>
+ <entry>__u32</entry>
+ <entry><structfield>tuner</structfield></entry>
+ <entry>The tuner index number. This is the
+same value as in the &v4l2-input; <structfield>tuner</structfield>
+field and the &v4l2-tuner; <structfield>index</structfield> field.</entry>
+ </row>
+ <row>
+ <entry>&v4l2-tuner-type;</entry>
+ <entry><structfield>type</structfield></entry>
+ <entry>The tuner type. This is the same value as in the
+&v4l2-tuner; <structfield>type</structfield> field.</entry>
+ </row>
+ <row>
+ <entry>__u32</entry>
+ <entry><structfield>seek_upward</structfield></entry>
+ <entry>If non-zero, seek upward from the current frequency, else seek downward.</entry>
+ </row>
+ <row>
+ <entry>__u32</entry>
+ <entry><structfield>wrap_around</structfield></entry>
+ <entry>If non-zero, wrap around when at the end of the frequency range, else stop seeking.</entry>
+ </row>
+ <row>
+ <entry>__u32</entry>
+ <entry><structfield>reserved</structfield>[8];</entry>
+ <entry>Reserved for future extensions. Drivers and
+ applications must set the array to zero.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </refsect1>
+
+ <refsect1>
+ &return-value;
+
+ <variablelist>
+ <varlistentry>
+ <term><errorcode>EINVAL</errorcode></term>
+ <listitem>
+ <para>The <structfield>tuner</structfield> index is out of
+bounds or the value in the <structfield>type</structfield> field is
+wrong.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><errorcode>EAGAIN</errorcode></term>
+ <listitem>
+ <para>The ioctl timed-out. Try again.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+</refentry>
+
+<!--
+Local Variables:
+mode: sgml
+sgml-parent-document: "v4l2.sgml"
+indent-tabs-mode: nil
+End:
+-->