Em Sat, 20 Jun 2009 14:30:41 +0200 Hans Verkuil <hverkuil@xxxxxxxxx> escreveu: > Hi Mauro, > > Please pull from http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-rds for the > following: > > - v4l2: add RDS API to videodev2.h > - v4l2-spec: finalize the RDS specification. > From: Hans Verkuil <hverkuil@xxxxxxxxx> > > Priority: normal > > Signed-off-by: Hans Verkuil <hverkuil@xxxxxxxxx> > > --- a/v4l2-spec/biblio.sgml Sat Jun 20 10:37:27 2009 +0200 > +++ b/v4l2-spec/biblio.sgml Sat Jun 20 10:49:43 2009 +0200 > @@ -158,54 +158,23 @@ 1125-Line High-Definition Production"</t > 1125-Line High-Definition Production"</title> > </biblioentry> > > - <biblioentry id="v4l"> > - <abbrev>V4L</abbrev> > + <biblioentry id="en50067"> > + <abbrev>EN 50067</abbrev> > <authorgroup> > - <author> > - <firstname>Alan</firstname> > - <surname>Cox</surname> > - <affiliation> > - <orgname>Red Hat, Inc.</orgname> > - <address> > - <email>alan@xxxxxxxxxx</email> > - </address> > - </affiliation> > - </author> > + <corpauthor>European Committee for Electrotechnical Standardization > +(<ulink url="http://www.cenelec.eu">http://www.cenelec.eu</ulink>)</corpauthor> > </authorgroup> > - <title>Video4Linux API Specification</title> > - <abstract> > - <para>This file is part of the Linux kernel sources under > -<filename>Documentation/video4linux</filename>.</para> > - </abstract> > + <title>Specification of the radio data system (RDS) for VHF/FM sound broadcasting > +in the frequency range from 87,5 to 108,0 MHz</title> > </biblioentry> > > - <biblioentry id="v4lprog"> > - <abbrev>V4LPROG</abbrev> > + <biblioentry id="nrsc4"> > + <abbrev>NRSC-4</abbrev> > <authorgroup> > - <author> > - <firstname>Alan</firstname> > - <surname>Cox</surname> > - <affiliation> > - <orgname>Red Hat, Inc.</orgname> > - <address> > - <email>alan@xxxxxxxxxx</email> > - </address> > - </affiliation> > - </author> > + <corpauthor>National Radio Systems Committee > +(<ulink url="http://www.nrscstandards.org">http://www.nrscstandards.org</ulink>)</corpauthor> > </authorgroup> > - <title>Video4Linux Programming (a.k.a. The Video4Linux > -Book)</title> > - <abstract> > - <para>About V4L <emphasis>driver</emphasis> programming. This > -book is part of the Linux kernel DocBook documentation, for example at > -<ulink url="http://kernelnewbies.org/documents/"> > -http://kernelnewbies.org/documents/</ulink>. SGML sources are included > -in the kernel sources.</para> > - </abstract> > - <copyright> > - <year>2000</year> > - <holder>Alan Cox</holder> > - </copyright> > + <title>NTSC-4: United States RBDS Standard</title> > </biblioentry> > > </bibliography> Hmm.. why are you removing Alan Cox authorship, and adding other organizations there? AFAIK, they never submitted a contribution to V4L2 API, nor I have their and Alan Ack/SOB, that are required for such changes. > --- a/v4l2-spec/compat.sgml Sat Jun 20 10:37:27 2009 +0200 > +++ b/v4l2-spec/compat.sgml Sat Jun 20 10:49:43 2009 +0200 > @@ -1273,9 +1273,8 @@ request code, thus older V4L2 devices wi > request code, thus older V4L2 devices will respond with an &EINVAL; to > the new &VIDIOC-QUERYCAP; ioctl.</para> > > - <para>There are new fields to identify the driver, a new (as > -of yet unspecified) device function > -<constant>V4L2_CAP_RDS_CAPTURE</constant>, the > + <para>There are new fields to identify the driver, a new RDS > +device function <constant>V4L2_CAP_RDS_CAPTURE</constant>, the > <constant>V4L2_CAP_AUDIO</constant> flag indicates if the device has > any audio connectors, another I/O capability > <constant>V4L2_CAP_ASYNCIO</constant> can be flagged. In response to > @@ -2291,6 +2290,15 @@ was renamed to <structname id=v4l2-chip- > </listitem> > <listitem> > <para>New control <constant>V4L2_CID_COLORFX</constant> was added.</para> > + </listitem> > + </orderedlist> > + </section> > + <section> > + <title>V4L2 in Linux 2.6.32</title> > + <orderedlist> > + <listitem> > + <para>Finalized the RDS capture API. See <xref linkend="rds"> for > +more information.</para> > </listitem> > </orderedlist> > </section> > --- a/v4l2-spec/dev-rds.sgml Sat Jun 20 10:37:27 2009 +0200 > +++ b/v4l2-spec/dev-rds.sgml Sat Jun 20 10:49:43 2009 +0200 > @@ -2,38 +2,154 @@ > > <para>The Radio Data System transmits supplementary > information in binary format, for example the station name or travel > -information, on a inaudible audio subcarrier of a radio program. This > -interface aims at devices capable of receiving and decoding RDS > +information, on an inaudible audio subcarrier of a radio program. This > +interface is aimed at devices capable of receiving and decoding RDS > information.</para> > > - <para>The V4L API defines its RDS API as follows.</para> > + <para>For more information see the core RDS standard <xref linkend="en50067"> > +and the RBDS standard <xref linkend="nrsc4">.</para> > > - <para>From radio devices supporting it, RDS data can be read > -with the &func-read; function. The data is packed in groups of three, > -as follows:<orderedlist> > - <listitem> > - <para>First Octet Least Significant Byte of RDS Block</para> > - </listitem> > - <listitem> > - <para>Second Octet Most Significant Byte of RDS Block</para> > - </listitem> > - <listitem> > - <para>Third Octet Bit 7: Error bit. Indicates that an > -uncorrectable error occurred during reception of this block. Bit 6: > -Corrected bit. Indicates that an error was corrected for this data > -block. Bits 5-3: Received Offset. Indicates the offset received by the > -sync system. Bits 2-0: Offset Name. Indicates the offset applied to > -this data.</para> > - </listitem> > - </orderedlist></para> > + <para>Note that the RBDS standard as is used in the USA is almost identical > +to the RDS standard. Any RDS decoder can also handle RBDS. Only some of the fields > +have slightly different meanings. See the RBDS standard for more information.</para> > > - <para>It was argued <!-- video4linux-list@xxxxxxxxxx > -on 12 Nov 2002, subject "RDS/RBDS" --> the RDS API should be > -extended before integration into V4L2, no new API has been devised yet. > -Please write to the linux-media mailing list for discussion: &v4l-ml;. > -Meanwhile no V4L2 driver should set the > -<constant>V4L2_CAP_RDS_CAPTURE</constant> capability flag.</para> > + <para>The RBDS standard also specifies support for MMBS (Modified Mobile Search). > +This is a proprietary format which seems to be discontinued. The RDS interface does not > +support this format. Should support for MMBS (or the so-called 'E blocks' in general) > +be needed, then please contact the linux-media mailing list: &v4l-ml;.</para> > > + <section> > + <title>Querying Capabilities</title> > + > + <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 > +<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 > +the <structfield>rxsubchans</structfield> field of &v4l2-tuner;: the > +<constant>V4L2_TUNER_SUB_RDS</constant> will be set if RDS data was detected.</para> > + > + </section> > + > + <section> > + <title>Reading RDS data</title> > + > + <para>RDS data can be read from the radio device > +with the &func-read; function. The data is packed in groups of three bytes, > +as follows:</para> > + <table frame="none" pgwide="1" id="v4l2-rds-data"> > + <title>struct > +<structname>v4l2_rds_data</structname></title> > + <tgroup cols="3"> > + <colspec colname="c1" colwidth="1*"> > + <colspec colname="c2" colwidth="1*"> > + <colspec colname="c3" colwidth="5*"> > + <tbody valign="top"> > + <row> > + <entry>__u8</entry> > + <entry><structfield>lsb</structfield></entry> > + <entry>Least Significant Byte of RDS Block</entry> > + </row> > + <row> > + <entry>__u8</entry> > + <entry><structfield>msb</structfield></entry> > + <entry>Most Significant Byte of RDS Block</entry> > + </row> > + <row> > + <entry>__u8</entry> > + <entry><structfield>block</structfield></entry> > + <entry>Block description</entry> > + </row> > + </tbody> > + </tgroup> > + </table> > + <table frame="none" pgwide="1" id="v4l2-rds-block"> > + <title>Block description</title> > + <tgroup cols="2"> > + <colspec colname="c1" colwidth="1*"> > + <colspec colname="c2" colwidth="5*"> > + <tbody valign="top"> > + <row> > + <entry>Bits 0-2</entry> > + <entry>Block (aka offset) of the received data.</entry> > + </row> > + <row> > + <entry>Bits 3-5</entry> > + <entry>Deprecated. Currently identical to bits 0-2. Do not use these bits.</entry> > + </row> > + <row> > + <entry>Bit 6</entry> > + <entry>Corrected bit. Indicates that an error was corrected for this data block.</entry> > + </row> > + <row> > + <entry>Bit 7</entry> > + <entry>Error bit. Indicates that an uncorrectable error occurred during reception of this block.</entry> > + </row> > + </tbody> > + </tgroup> > + </table> > + > + <table frame="none" pgwide="1" id="v4l2-rds-block-codes"> > + <title>Block defines</title> > + <tgroup cols="3"> > + <colspec colname="c1" colwidth="1*"> > + <colspec colname="c2" colwidth="1*"> > + <colspec colname="c3" colwidth="5*"> > + <tbody valign="top"> > + <row> > + <entry>V4L2_RDS_BLOCK_MSK</entry> > + <entry>7</entry> > + <entry>Mask for bits 0-2 to get the block ID.</entry> > + </row> > + <row> > + <entry>V4L2_RDS_BLOCK_A</entry> > + <entry>0</entry> > + <entry>Block A.</entry> > + </row> > + <row> > + <entry>V4L2_RDS_BLOCK_B</entry> > + <entry>1</entry> > + <entry>Block B.</entry> > + </row> > + <row> > + <entry>V4L2_RDS_BLOCK_C</entry> > + <entry>2</entry> > + <entry>Block C.</entry> > + </row> > + <row> > + <entry>V4L2_RDS_BLOCK_D</entry> > + <entry>3</entry> > + <entry>Block D.</entry> > + </row> > + <row> > + <entry>V4L2_RDS_BLOCK_C_ALT</entry> > + <entry>4</entry> > + <entry>Block C'.</entry> > + </row> > + <row> > + <entry>V4L2_RDS_BLOCK_INVALID</entry> > + <entry>7</entry> > + <entry>An invalid block.</entry> > + </row> > + <row> > + <entry>V4L2_RDS_BLOCK_CORRECTED</entry> > + <entry>0x40</entry> > + <entry>A bit error was detected but corrected.</entry> > + </row> > + <row> > + <entry>V4L2_RDS_BLOCK_ERROR</entry> > + <entry>0x80</entry> > + <entry>An incorrectable error occurred.</entry> > + </row> > + </tbody> > + </tgroup> > + </table> > + </section> > > <!-- > Local Variables: > --- a/v4l2-spec/v4l2.sgml Sat Jun 20 10:37:27 2009 +0200 > +++ b/v4l2-spec/v4l2.sgml Sat Jun 20 10:49:43 2009 +0200 > @@ -129,6 +129,13 @@ structs, ioctls) must be noted in more d > structs, ioctls) must be noted in more detail in the history chapter > (compat.sgml), along with the possible impact on existing drivers and > applications. --> > + > + <revision> > + <revnumber>0.26</revnumber> > + <date>2009-06-15</date> > + <authorinitials>hv</authorinitials> > + <revremark>Finalized the RDS capture API.</revremark> > + </revision> > > <revision> > <revnumber>0.25</revnumber> > --- a/v4l2-spec/vidioc-g-tuner.sgml Sat Jun 20 10:37:27 2009 +0200 > +++ b/v4l2-spec/vidioc-g-tuner.sgml Sat Jun 20 10:49:43 2009 +0200 > @@ -120,9 +120,9 @@ to decode audio subprograms. They will < > to decode audio subprograms. They will <emphasis>not</emphasis> > change, for example with the current video standard.</para><para>When > the structure refers to a radio tuner only the > -<constant>V4L2_TUNER_CAP_LOW</constant> and > -<constant>V4L2_TUNER_CAP_STEREO</constant> flags can be > -set.</para></entry> > +<constant>V4L2_TUNER_CAP_LOW</constant>, > +<constant>V4L2_TUNER_CAP_STEREO</constant> and > +<constant>V4L2_TUNER_CAP_RDS</constant> flags can be set.</para></entry> > </row> > <row> > <entry>__u32</entry> > @@ -312,6 +312,12 @@ supports the <constant>V4L2_STD_NTSC_M</ > supports the <constant>V4L2_STD_NTSC_M</constant> video > standard.</para><!-- FIXME what if PAL+NTSC and Bi but not SAP? --></entry> > </row> > + <row> > + <entry><constant>V4L2_TUNER_CAP_RDS</constant></entry> > + <entry>0x0080</entry> > + <entry>RDS capture is supported. This capability is only valid for > +radio tuners.</entry> > + </row> > </tbody> > </tgroup> > </table> > @@ -352,6 +358,11 @@ bilingual audio signal (or a second audi > <constant>V4L2_TUNER_SUB_SAP</constant> flags are synonyms. The > <constant>V4L2_TUNER_SUB_SAP</constant> flag applies when the > current video standard is <constant>V4L2_STD_NTSC_M</constant>.</entry> > + </row> > + <row> > + <entry><constant>V4L2_TUNER_SUB_RDS</constant></entry> > + <entry>0x0010</entry> > + <entry>The tuner receives an RDS channel.</entry> > </row> > </tbody> > </tgroup> > --- a/v4l2-spec/vidioc-querycap.sgml Sat Jun 20 10:37:27 2009 +0200 > +++ b/v4l2-spec/vidioc-querycap.sgml Sat Jun 20 10:49:43 2009 +0200 > @@ -184,7 +184,7 @@ data.</entry> > <row> > <entry><constant>V4L2_CAP_RDS_CAPTURE</constant></entry> > <entry>0x00000100</entry> > - <entry>[to be defined]</entry> > + <entry>The device supports the <link linkend="rds">RDS</link> interface.</entry> > </row> > <row> > <entry><constant>V4L2_CAP_VIDEO_OUTPUT_OVERLAY</constant></entry> > Cheers, Mauro -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html