summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux/include/linux/videodev2.h2
-rw-r--r--v4l2-apps/test/Makefile2
-rw-r--r--v4l2-apps/util/v4l2-ctl.cpp4
-rw-r--r--v4l2-spec/common.sgml2
-rw-r--r--v4l2-spec/compat.sgml3
-rw-r--r--v4l2-spec/dev-radio.sgml14
-rw-r--r--v4l2-spec/dev-rds.sgml20
-rw-r--r--v4l2-spec/pixfmt.sgml5
-rw-r--r--v4l2-spec/v4l2.sgml3
-rw-r--r--v4l2-spec/vidioc-g-modulator.sgml5
-rw-r--r--v4l2-spec/vidioc-querycap.sgml14
11 files changed, 56 insertions, 18 deletions
diff --git a/linux/include/linux/videodev2.h b/linux/include/linux/videodev2.h
index 50dd2a51b..b61c3b61c 100644
--- a/linux/include/linux/videodev2.h
+++ b/linux/include/linux/videodev2.h
@@ -252,10 +252,12 @@ struct v4l2_capability {
#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */
#define V4L2_CAP_VIDEO_OUTPUT_OVERLAY 0x00000200 /* Can do video output overlay */
#define V4L2_CAP_HW_FREQ_SEEK 0x00000400 /* Can do hardware frequency seek */
+#define V4L2_CAP_RDS_OUTPUT 0x00000800 /* Is an RDS encoder */
#define V4L2_CAP_TUNER 0x00010000 /* has a tuner */
#define V4L2_CAP_AUDIO 0x00020000 /* has audio support */
#define V4L2_CAP_RADIO 0x00040000 /* is a radio device */
+#define V4L2_CAP_MODULATOR 0x00080000 /* has a modulator */
#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */
#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */
diff --git a/v4l2-apps/test/Makefile b/v4l2-apps/test/Makefile
index 71eaa77cf..13eebf377 100644
--- a/v4l2-apps/test/Makefile
+++ b/v4l2-apps/test/Makefile
@@ -34,6 +34,6 @@ pixfmt-test: pixfmt-test.o
$(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@ -lX11
v4l2grab: v4l2grab.o
- $(CC) $(LDFLAGS) $^ -o $@ ../libv4l/libv4l2/libv4l2.so
+ $(CC) $(LDFLAGS) $^ -o $@ -L ../libv4l/libv4l2 -L ../libv4l/libv4lconvert -lv4l2 -lv4lconvert
include ../Make.rules
diff --git a/v4l2-apps/util/v4l2-ctl.cpp b/v4l2-apps/util/v4l2-ctl.cpp
index 5410e5d03..b2246c557 100644
--- a/v4l2-apps/util/v4l2-ctl.cpp
+++ b/v4l2-apps/util/v4l2-ctl.cpp
@@ -1020,8 +1020,12 @@ static std::string cap2s(unsigned cap)
s += "\t\tSliced VBI Output\n";
if (cap & V4L2_CAP_RDS_CAPTURE)
s += "\t\tRDS Capture\n";
+ if (cap & V4L2_CAP_RDS_OUTPUT)
+ s += "\t\tRDS Output\n";
if (cap & V4L2_CAP_TUNER)
s += "\t\tTuner\n";
+ if (cap & V4L2_CAP_MODULATOR)
+ s += "\t\tModulator\n";
if (cap & V4L2_CAP_AUDIO)
s += "\t\tAudio\n";
if (cap & V4L2_CAP_RADIO)
diff --git a/v4l2-spec/common.sgml b/v4l2-spec/common.sgml
index ff595960b..75c7141e3 100644
--- a/v4l2-spec/common.sgml
+++ b/v4l2-spec/common.sgml
@@ -491,7 +491,7 @@ the &VIDIOC-G-MODULATOR; and &VIDIOC-S-MODULATOR; ioctl. Note that
<constant>VIDIOC_S_MODULATOR</constant> does not switch the current
modulator, when there is more than one at all. The modulator is solely
determined by the current video output. Drivers must support both
-ioctls and set the <constant>V4L2_CAP_TUNER</constant> (sic) flag in
+ioctls and set the <constant>V4L2_CAP_MODULATOR</constant> flag in
the &v4l2-capability; returned by the &VIDIOC-QUERYCAP; ioctl when the
device has one or more modulators.</para>
</section>
diff --git a/v4l2-spec/compat.sgml b/v4l2-spec/compat.sgml
index c1c725f35..bcc372c18 100644
--- a/v4l2-spec/compat.sgml
+++ b/v4l2-spec/compat.sgml
@@ -2300,6 +2300,9 @@ was renamed to <structname id=v4l2-chip-ident-old>v4l2_chip_ident_old</structnam
<para>Finalized the RDS capture API. See <xref linkend="rds"> for
more information.</para>
</listitem>
+ <listitem>
+ <para>Added new capabilities for modulators and RDS encoders.</para>
+ </listitem>
</orderedlist>
</section>
</section>
diff --git a/v4l2-spec/dev-radio.sgml b/v4l2-spec/dev-radio.sgml
index ae8367219..4d521d2a8 100644
--- a/v4l2-spec/dev-radio.sgml
+++ b/v4l2-spec/dev-radio.sgml
@@ -1,7 +1,7 @@
<title>Radio Interface</title>
<para>This interface is intended for AM and FM (analog) radio
-receivers.</para>
+receivers and transmitters.</para>
<para>Conventionally V4L2 radio devices are accessed through
character device special files named <filename>/dev/radio</filename>
@@ -14,7 +14,8 @@ numbers 64 to 127.</para>
<para>Devices supporting the radio interface set the
<constant>V4L2_CAP_RADIO</constant> and
-<constant>V4L2_CAP_TUNER</constant> flag in the
+<constant>V4L2_CAP_TUNER</constant> or
+<constant>V4L2_CAP_MODULATOR</constant> flag in the
<structfield>capabilities</structfield> field of &v4l2-capability;
returned by the &VIDIOC-QUERYCAP; ioctl. Other combinations of
capability flags are reserved for future extensions.</para>
@@ -25,7 +26,7 @@ capability flags are reserved for future extensions.</para>
<para>Radio devices can support <link
linkend="control">controls</link>, and must support the <link
-linkend="tuner">tuner</link> ioctls.</para>
+linkend="tuner">tuner or modulator</link> ioctls.</para>
<para>They do not support the video input or output, audio input
or output, video standard, cropping and scaling, compression and
@@ -38,11 +39,12 @@ methods are reserved for future extensions.</para>
<para>Radio devices may have a couple audio controls (as discussed
in <xref linkend="control">) such as a volume control, possibly custom
-controls. Further all radio devices have one tuner (these are
+controls. Further all radio devices have one tuner or modulator (these are
discussed in <xref linkend="tuner">) with index number zero to select
the radio frequency and to determine if a monaural or FM stereo
-program is received. Drivers switch automatically between AM and FM
-depending on the selected frequency. The &VIDIOC-G-TUNER; ioctl
+program is received/emitted. Drivers switch automatically between AM and FM
+depending on the selected frequency. The &VIDIOC-G-TUNER; or
+&VIDIOC-G-MODULATOR; ioctl
reports the supported frequency range.</para>
</section>
diff --git a/v4l2-spec/dev-rds.sgml b/v4l2-spec/dev-rds.sgml
index 8f357d9f0..9d59d0cb0 100644
--- a/v4l2-spec/dev-rds.sgml
+++ b/v4l2-spec/dev-rds.sgml
@@ -24,16 +24,24 @@ be needed, then please contact the linux-media mailing list: &v4l-ml;.</para>
<para>Devices supporting the RDS capturing API
set the <constant>V4L2_CAP_RDS_CAPTURE</constant> flag in
the <structfield>capabilities</structfield> field of &v4l2-capability;
-returned by the &VIDIOC-QUERYCAP; ioctl.</para>
-
- <para>Any tuner that supports RDS will set the
+returned by the &VIDIOC-QUERYCAP; ioctl.
+Any tuner that supports RDS will set the
<constant>V4L2_TUNER_CAP_RDS</constant> flag in the <structfield>capability</structfield>
-field of &v4l2-tuner;.</para>
-
- <para>Whether an RDS signal is present can be detected by looking at
+field of &v4l2-tuner;.
+Whether an RDS signal is present can be detected by looking at
the <structfield>rxsubchans</structfield> field of &v4l2-tuner;: the
<constant>V4L2_TUNER_SUB_RDS</constant> will be set if RDS data was detected.</para>
+ <para>Devices supporting the RDS output API
+set the <constant>V4L2_CAP_RDS_OUTPUT</constant> flag in
+the <structfield>capabilities</structfield> field of &v4l2-capability;
+returned by the &VIDIOC-QUERYCAP; ioctl.
+Any modulator that supports RDS will set the
+<constant>V4L2_TUNER_CAP_RDS</constant> flag in the <structfield>capability</structfield>
+field of &v4l2-modulator;.
+In order to enable the RDS transmission one must set the <constant>V4L2_TUNER_SUB_RDS</constant>
+bit in the <structfield>txsubchans</structfield> field of &v4l2-modulator;.</para>
+
</section>
<section>
diff --git a/v4l2-spec/pixfmt.sgml b/v4l2-spec/pixfmt.sgml
index 1be70eea0..9e6bebeb4 100644
--- a/v4l2-spec/pixfmt.sgml
+++ b/v4l2-spec/pixfmt.sgml
@@ -765,6 +765,11 @@ kernel sources in the file <filename>Documentation/video4linux/cx2341x/README.hm
<entry>'S910'</entry>
<entry>Compressed format of the SN9C102 driver.</entry>
</row>
+ <row id="V4L2-PIX-FMT-SN9C20X-I420">
+ <entry><constant>V4L2_PIX_FMT_SN9C20X_I420</constant></entry>
+ <entry>'S920'</entry>
+ <entry>YUV 4:2:0 format of the gspca sn9c20x driver.</entry>
+ </row>
<row id="V4L2-PIX-FMT-WNVA">
<entry><constant>V4L2_PIX_FMT_WNVA</constant></entry>
<entry>'WNVA'</entry>
diff --git a/v4l2-spec/v4l2.sgml b/v4l2-spec/v4l2.sgml
index 815e96ab5..bae7eb441 100644
--- a/v4l2-spec/v4l2.sgml
+++ b/v4l2-spec/v4l2.sgml
@@ -134,7 +134,8 @@ applications. -->
<revnumber>0.26</revnumber>
<date>2009-06-15</date>
<authorinitials>hv</authorinitials>
- <revremark>Finalized the RDS capture API.</revremark>
+ <revremark>Finalized the RDS capture API. Added modulator and RDS encoder
+capabilities.</revremark>
</revision>
<revision>
diff --git a/v4l2-spec/vidioc-g-modulator.sgml b/v4l2-spec/vidioc-g-modulator.sgml
index a3ea5ef8a..945147f90 100644
--- a/v4l2-spec/vidioc-g-modulator.sgml
+++ b/v4l2-spec/vidioc-g-modulator.sgml
@@ -212,6 +212,11 @@ does not permit SAP the <constant>VIDIOC_S_MODULATOR</constant> ioctl
shall return an &EINVAL; and driver shall fall back to mono or stereo
mode.</entry>
</row>
+ <row>
+ <entry><constant>V4L2_TUNER_SUB_RDS</constant></entry>
+ <entry>0x0010</entry>
+ <entry>Enable the RDS encoder for a radio FM transmitter.</entry>
+ </row>
</tbody>
</tgroup>
</table>
diff --git a/v4l2-spec/vidioc-querycap.sgml b/v4l2-spec/vidioc-querycap.sgml
index 4a741f5e9..fa12ae738 100644
--- a/v4l2-spec/vidioc-querycap.sgml
+++ b/v4l2-spec/vidioc-querycap.sgml
@@ -208,9 +208,9 @@ hardware frequency seeking.</entry>
<row>
<entry><constant>V4L2_CAP_TUNER</constant></entry>
<entry>0x00010000</entry>
- <entry>The device has some sort of tuner or modulator to
-receive or emit RF-modulated video signals. For more information about
-tuner and modulator programming see
+ <entry>The device has some sort of tuner to
+receive RF-modulated video signals. For more information about
+tuner programming see
<xref linkend="tuner">.</entry>
</row>
<row>
@@ -228,6 +228,14 @@ interface. For more information on audio inputs and outputs see <xref
<entry>This is a radio receiver.</entry>
</row>
<row>
+ <entry><constant>V4L2_CAP_MODULATOR</constant></entry>
+ <entry>0x00080000</entry>
+ <entry>The device has some sort of modulator to
+emit RF-modulated video/audio signals. For more information about
+modulator programming see
+<xref linkend="tuner">.</entry>
+ </row>
+ <row>
<entry><constant>V4L2_CAP_READWRITE</constant></entry>
<entry>0x01000000</entry>
<entry>The device supports the <link