Message ID | 1244827840-886-6-git-send-email-eduardo.valentin@nokia.com (mailing list archive) |
---|---|
State | RFC |
Headers | show |
On Friday 12 June 2009 19:30:36 Eduardo Valentin wrote: > This single patch adds documentation description for FM Modulator (FM_TX) > Extended Control Class and its Control IDs. The text was added under > "Extended Controls" section. > > Signed-off-by: Eduardo Valentin <eduardo.valentin@nokia.com> > --- > v4l2-spec/Makefile | 1 + > v4l2-spec/biblio.sgml | 10 +++ > v4l2-spec/controls.sgml | 205 +++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 216 insertions(+), 0 deletions(-) > > diff --git a/v4l2-spec/Makefile b/v4l2-spec/Makefile > index 7a19924..bfe2965 100644 > --- a/v4l2-spec/Makefile > +++ b/v4l2-spec/Makefile > @@ -242,6 +242,7 @@ ENUMS = \ > v4l2_power_line_frequency \ > v4l2_priority \ > v4l2_tuner_type \ > + v4l2_fm_tx_preemphasis \ > > STRUCTS = \ > v4l2_audio \ > diff --git a/v4l2-spec/biblio.sgml b/v4l2-spec/biblio.sgml > index b013ece..0921849 100644 > --- a/v4l2-spec/biblio.sgml > +++ b/v4l2-spec/biblio.sgml > @@ -11,6 +11,16 @@ url="http://www.eia.org">http://www.eia.org</ulink>)</corpauthor> > Service"</title> > </biblioentry> > > + <biblioentry id="en50067"> > + <abbrev>EN 50067</abbrev> > + <authorgroup> > + <corpauthor>CENELEC European Committee for Electrotechnical Standardization > +(<ulink url="http://www.cenelec.eu">http://www.cenelec.eu</ulink>)</corpauthor> > + </authorgroup> > + <title>EN 50067 "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="en300294"> > <abbrev>EN 300 294</abbrev> > <authorgroup> > diff --git a/v4l2-spec/controls.sgml b/v4l2-spec/controls.sgml > index 477a970..0bb6f00 100644 > --- a/v4l2-spec/controls.sgml > +++ b/v4l2-spec/controls.sgml > @@ -458,6 +458,12 @@ video is actually encoded into that format.</para> > <para>Unfortunately, the original control API lacked some > features needed for these new uses and so it was extended into the > (not terribly originally named) extended control API.</para> > + > + <para>Even though the MPEG encoding API was the first effort > +to use the Extended Control API, nowadays there are also other classes > +of Extended Controls, such as Camera Controls and FM Transmitter Controls. > +The Extended Controls API as well as all Extended Controls classes are > +described in the following text.</para> > </section> > > <section> > @@ -1816,6 +1822,205 @@ control must support read access and may support write access.</entry> > </tgroup> > </table> > </section> > + > + <section id="fm-tx-controls"> > + <title>FM Transmitter Control Reference</title> > + > + <para>The FM Transmitter (FM_TX) class includes controls for common features of > +FM transmissions capable devices. Currently this class include parameters for audio > +compression, pilot tone generation, audio deviation limiter, RDS transmission and > +tuning power features.</para> > + > + <table pgwide="1" frame="none" id="fm-tx-control-id"> > + <title>FM_TX Control IDs</title> > + > + <tgroup cols="4"> > + <colspec colname="c1" colwidth="1*"> > + <colspec colname="c2" colwidth="6*"> > + <colspec colname="c3" colwidth="2*"> > + <colspec colname="c4" colwidth="6*"> > + <spanspec namest="c1" nameend="c2" spanname="id"> > + <spanspec namest="c2" nameend="c4" spanname="descr"> > + <thead> > + <row> > + <entry spanname="id" align="left">ID</entry> > + <entry align="left">Type</entry> > + </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry> > + </row> > + </thead> > + <tbody valign="top"> > + <row><entry></entry></row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_FM_TX_CLASS</constant> </entry> > + <entry>class</entry> > + </row><row><entry spanname="descr">The FM_TX class > +descriptor. Calling &VIDIOC-QUERYCTRL; for this control will return a > +description of this control class.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_RDS_ENABLED</constant> </entry> > + <entry>boolean</entry> > + </row> > + <row><entry spanname="descr">Enables or disables the RDS transmission feature.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_RDS_PI</constant> </entry> > + <entry>integer</entry> > + </row> > + <row><entry spanname="descr">Sets the RDS Programme Identification field > +for transmission.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_RDS_PTY</constant> </entry> > + <entry>integer</entry> > + </row> > + <row><entry spanname="descr">Sets the RDS Programme Type field for transmission. > +This coding of up to 31 pre-defined programme types.</entry> coding -> encodes > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_RDS_PS_NAME</constant> </entry> > + <entry>string</entry> > + </row> > + <row><entry spanname="descr">Sets the Programme Service name (PS_NAME) for transmission. > +It is intended for static display on a receiver. It is the primary aid to listeners in programme service > +identification and selection. The use of PS to transmit text other than a single eight character name is not permitted.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_RDS_RADIO_TEXT</constant> </entry> > + <entry>string</entry> > + </row> > + <row><entry spanname="descr">Sets the Radio Text info for transmission. It is a textual description of > +what is being broadcasted. If broadcaster wishes to transmit longer PS names, programme-related information or any other > +text, then RadioText should be used.</entry> This is slightly ambiguous. I would suggest changing the ending to: "should be used in addition to <constant>V4L2_CID_RDS_PS_NAME</constant>." > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_AUDIO_LIMITER_ENABLED</constant> </entry> > + <entry>boolean</entry> > + </row> > + <row><entry spanname="descr">Enables or disables the audio deviation limiter feature. > +The limiter is useful when trying to maximize the audio volume, minimize receiver-generated > +distortion and prevent overmodulation. > +</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_AUDIO_LIMITER_RELEASE_TIME</constant> </entry> > + <entry>integer</entry> > + </row> > + <row><entry spanname="descr">Sets the audio deviation limiter feature release time. > +The unit, step and range are driver-specific.</entry> I thought the unit was useconds? > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_AUDIO_LIMITER_DEVIATION</constant> </entry> > + <entry>integer</entry> > + </row> > + <row><entry spanname="descr">Configures audio frequency deviation level in Hz. > +The range and step are driver-specific.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_ENABLED</constant> </entry> > + <entry>boolean</entry> > + </row> > + <row><entry spanname="descr">Enables or disables the audio compression feature. > +This feature amplifies signals below the threshold by a fixed gain and compresses audio > +signals above the threshold by the ratio of Threshold/(Gain + Threshold).</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_GAIN</constant> </entry> > + <entry>integer</entry> > + </row> > + <row><entry spanname="descr">Sets the gain for audio compression feature. It is > +a dB value. The range and step are driver-specific.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_THRESHOLD</constant> </entry> > + <entry>integer</entry> > + </row> > + <row><entry spanname="descr">Sets the threshold level for audio compression freature. > +It is a dB value. The range and step are driver-specific.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME</constant> </entry> > + <entry>integer</entry> > + </row> > + <row><entry spanname="descr">Sets the attack time for audio compression feature. > +It is a useconds value. The range and step are driver-specific.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME</constant> </entry> > + <entry>integer</entry> > + </row> > + <row><entry spanname="descr">Sets the release time for audio compression feature. > +It is a useconds value. The range and step are driver-specific.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_PILOT_TONE_ENABLED</constant> </entry> > + <entry>boolean</entry> > + </row> > + <row><entry spanname="descr">Enables or disables the pilot tone generation feature.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_PILOT_TONE_DEVIATION</constant> </entry> > + <entry>integer</entry> > + </row> > + <row><entry spanname="descr">Configures pilot tone frequency deviation level. Unit is > +in Hz. The range and step are driver-specific.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_PILOT_TONE_FREQUENCY</constant> </entry> > + <entry>integer</entry> > + </row> > + <row><entry spanname="descr">Configures pilot tone frequency value. Unit is > +in Hz. The range and step are driver-specific.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_PREEMPHASIS</constant> </entry> > + <entry>integer</entry> > + </row> > + <row id="v4l2-fm-tx-preemphasis"><entry spanname="descr">Configures the pre-emphasis value for broadcasting. > +A pre-emphasis filter is applied to the broadcast to accentuate the high audio frequencies. > +Depending on the region, a time constant of either 50 or 75 useconds is used. The enum v4l2_fm_tx_preemphasis > +defines possible values for pre-emphasis. Here they are:</entry> > + </row><row> > + <entrytbl spanname="descr" cols="2"> > + <tbody valign="top"> > + <row> > + <entry><constant>V4L2_FM_TX_PREEMPHASIS_DISABLED</constant> </entry> > + <entry>No pre-emphasis is applied.</entry> > + </row> > + <row> > + <entry><constant>V4L2_FM_TX_PREEMPHASIS_50_uS</constant> </entry> > + <entry>A pre-emphasis of 50 uS is used.</entry> > + </row> > + <row> > + <entry><constant>V4L2_FM_TX_PREEMPHASIS_75_uS</constant> </entry> > + <entry>A pre-emphasis of 75 uS is used.</entry> > + </row> > + </tbody> > + </entrytbl> > + > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_TUNE_POWER_LEVEL</constant> </entry> > + <entry>integer</entry> > + </row> > + <row><entry spanname="descr">Sets the output power level for signal transmission. > +Unit is in dBuV. Range and step are driver-specific.</entry> > + </row> > + <row> > + <entry spanname="id"><constant>V4L2_CID_TUNE_ANTENNA_CAPACITOR</constant> </entry> > + <entry>integer</entry> > + </row> > + <row><entry spanname="descr">This selects the value of antenna tuning capacitor > +manually or automatically if set to zero. Unit, range and step are driver-specific.</entry> > + </row> > + <row><entry></entry></row> > + </tbody> > + </tgroup> > + </table> > + > +<para>For more details about RDS specification, refer to > +<xref linkend="en50067"> document, from CENELEC.</para> > + </section> > </section> > > <!-- Regards, Hans
Hi Hans, On Sun, Jun 14, 2009 at 1:41 PM, Hans Verkuil<hverkuil@xs4all.nl> wrote: > On Friday 12 June 2009 19:30:36 Eduardo Valentin wrote: >> This single patch adds documentation description for FM Modulator (FM_TX) >> Extended Control Class and its Control IDs. The text was added under >> "Extended Controls" section. >> >> Signed-off-by: Eduardo Valentin <eduardo.valentin@nokia.com> >> --- >>  v4l2-spec/Makefile    |   1 + >>  v4l2-spec/biblio.sgml  |  10 +++ >>  v4l2-spec/controls.sgml |  205 +++++++++++++++++++++++++++++++++++++++++++++++ >>  3 files changed, 216 insertions(+), 0 deletions(-) >> >> diff --git a/v4l2-spec/Makefile b/v4l2-spec/Makefile >> index 7a19924..bfe2965 100644 >> --- a/v4l2-spec/Makefile >> +++ b/v4l2-spec/Makefile >> @@ -242,6 +242,7 @@ ENUMS = \ >>    v4l2_power_line_frequency \ >>    v4l2_priority \ >>    v4l2_tuner_type \ >> +   v4l2_fm_tx_preemphasis \ >> >>  STRUCTS = \ >>    v4l2_audio \ >> diff --git a/v4l2-spec/biblio.sgml b/v4l2-spec/biblio.sgml >> index b013ece..0921849 100644 >> --- a/v4l2-spec/biblio.sgml >> +++ b/v4l2-spec/biblio.sgml >> @@ -11,6 +11,16 @@ url="http://www.eia.org">http://www.eia.org</ulink>)</corpauthor> >>  Service"</title> >>    </biblioentry> >> >> +   <biblioentry id="en50067"> >> +    <abbrev>EN 50067</abbrev> >> +    <authorgroup> >> +   <corpauthor>CENELEC European Committee for Electrotechnical Standardization >> +(<ulink url="http://www.cenelec.eu">http://www.cenelec.eu</ulink>)</corpauthor> >> +    </authorgroup> >> +    <title>EN 50067 "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="en300294"> >>     <abbrev>EN 300 294</abbrev> >>     <authorgroup> >> diff --git a/v4l2-spec/controls.sgml b/v4l2-spec/controls.sgml >> index 477a970..0bb6f00 100644 >> --- a/v4l2-spec/controls.sgml >> +++ b/v4l2-spec/controls.sgml >> @@ -458,6 +458,12 @@ video is actually encoded into that format.</para> >>     <para>Unfortunately, the original control API lacked some >>  features needed for these new uses and so it was extended into the >>  (not terribly originally named) extended control API.</para> >> + >> +    <para>Even though the MPEG encoding API was the first effort >> +to use the Extended Control API, nowadays there are also other classes >> +of Extended Controls, such as Camera Controls and FM Transmitter Controls. >> +The Extended Controls API as well as all Extended Controls classes are >> +described in the following text.</para> >>    </section> >> >>    <section> >> @@ -1816,6 +1822,205 @@ control must support read access and may support write access.</entry> >>     </tgroup> >>    </table> >>   </section> >> + >> +   <section id="fm-tx-controls"> >> +    <title>FM Transmitter Control Reference</title> >> + >> +    <para>The FM Transmitter (FM_TX) class includes controls for common features of >> +FM transmissions capable devices. Currently this class include parameters for audio >> +compression, pilot tone generation, audio deviation limiter, RDS transmission and >> +tuning power features.</para> >> + >> +    <table pgwide="1" frame="none" id="fm-tx-control-id"> >> +    <title>FM_TX Control IDs</title> >> + >> +    <tgroup cols="4"> >> +   <colspec colname="c1" colwidth="1*"> >> +   <colspec colname="c2" colwidth="6*"> >> +   <colspec colname="c3" colwidth="2*"> >> +   <colspec colname="c4" colwidth="6*"> >> +   <spanspec namest="c1" nameend="c2" spanname="id"> >> +   <spanspec namest="c2" nameend="c4" spanname="descr"> >> +   <thead> >> +    <row> >> +     <entry spanname="id" align="left">ID</entry> >> +     <entry align="left">Type</entry> >> +    </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry> >> +    </row> >> +   </thead> >> +   <tbody valign="top"> >> +    <row><entry></entry></row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_FM_TX_CLASS</constant> </entry> >> +     <entry>class</entry> >> +    </row><row><entry spanname="descr">The FM_TX class >> +descriptor. Calling &VIDIOC-QUERYCTRL; for this control will return a >> +description of this control class.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_RDS_ENABLED</constant> </entry> >> +     <entry>boolean</entry> >> +    </row> >> +    <row><entry spanname="descr">Enables or disables the RDS transmission feature.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_RDS_PI</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row><entry spanname="descr">Sets the RDS Programme Identification field >> +for transmission.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_RDS_PTY</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row><entry spanname="descr">Sets the RDS Programme Type field for transmission. >> +This coding of up to 31 pre-defined programme types.</entry> > > coding -> encodes Right. > >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_RDS_PS_NAME</constant> </entry> >> +     <entry>string</entry> >> +    </row> >> +    <row><entry spanname="descr">Sets the Programme Service name (PS_NAME) for transmission. >> +It is intended for static display on a receiver. It is the primary aid to listeners in programme service >> +identification and selection. The use of PS to transmit text other than a single eight character name is not permitted.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_RDS_RADIO_TEXT</constant> </entry> >> +     <entry>string</entry> >> +    </row> >> +    <row><entry spanname="descr">Sets the Radio Text info for transmission. It is a textual description of >> +what is being broadcasted. If broadcaster wishes to transmit longer PS names, programme-related information or any other >> +text, then RadioText should be used.</entry> > > This is slightly ambiguous. I would suggest changing the ending to: > > "should be used in addition to <constant>V4L2_CID_RDS_PS_NAME</constant>." I see. I'll change this. > >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_AUDIO_LIMITER_ENABLED</constant> </entry> >> +     <entry>boolean</entry> >> +    </row> >> +    <row><entry spanname="descr">Enables or disables the audio deviation limiter feature. >> +The limiter is useful when trying to maximize the audio volume, minimize receiver-generated >> +distortion and prevent overmodulation. >> +</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_AUDIO_LIMITER_RELEASE_TIME</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row><entry spanname="descr">Sets the audio deviation limiter feature release time. >> +The unit, step and range are driver-specific.</entry> > > I thought the unit was useconds? Yeah. Changing. > >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_AUDIO_LIMITER_DEVIATION</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row><entry spanname="descr">Configures audio frequency deviation level in Hz. >> +The range and step are driver-specific.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_ENABLED</constant> </entry> >> +     <entry>boolean</entry> >> +    </row> >> +    <row><entry spanname="descr">Enables or disables the audio compression feature. >> +This feature amplifies signals below the threshold by a fixed gain and compresses audio >> +signals above the threshold by the ratio of Threshold/(Gain + Threshold).</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_GAIN</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row><entry spanname="descr">Sets the gain for audio compression feature. It is >> +a dB value. The range and step are driver-specific.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_THRESHOLD</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row><entry spanname="descr">Sets the threshold level for audio compression freature. >> +It is a dB value. The range and step are driver-specific.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row><entry spanname="descr">Sets the attack time for audio compression feature. >> +It is a useconds value. The range and step are driver-specific.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row><entry spanname="descr">Sets the release time for audio compression feature. >> +It is a useconds value. The range and step are driver-specific.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_PILOT_TONE_ENABLED</constant> </entry> >> +     <entry>boolean</entry> >> +    </row> >> +    <row><entry spanname="descr">Enables or disables the pilot tone generation feature.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_PILOT_TONE_DEVIATION</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row><entry spanname="descr">Configures pilot tone frequency deviation level. Unit is >> +in Hz. The range and step are driver-specific.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_PILOT_TONE_FREQUENCY</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row><entry spanname="descr">Configures pilot tone frequency value. Unit is >> +in Hz. The range and step are driver-specific.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_PREEMPHASIS</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row id="v4l2-fm-tx-preemphasis"><entry spanname="descr">Configures the pre-emphasis value for broadcasting. >> +A pre-emphasis filter is applied to the broadcast to accentuate the high audio frequencies. >> +Depending on the region, a time constant of either 50 or 75 useconds is used. The enum v4l2_fm_tx_preemphasis >> +defines possible values for pre-emphasis. Here they are:</entry> >> +   </row><row> >> +   <entrytbl spanname="descr" cols="2"> >> +        <tbody valign="top"> >> +         <row> >> +          <entry><constant>V4L2_FM_TX_PREEMPHASIS_DISABLED</constant> </entry> >> +          <entry>No pre-emphasis is applied.</entry> >> +         </row> >> +         <row> >> +          <entry><constant>V4L2_FM_TX_PREEMPHASIS_50_uS</constant> </entry> >> +          <entry>A pre-emphasis of 50 uS is used.</entry> >> +         </row> >> +         <row> >> +          <entry><constant>V4L2_FM_TX_PREEMPHASIS_75_uS</constant> </entry> >> +          <entry>A pre-emphasis of 75 uS is used.</entry> >> +         </row> >> +        </tbody> >> +       </entrytbl> >> + >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_TUNE_POWER_LEVEL</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row><entry spanname="descr">Sets the output power level for signal transmission. >> +Unit is in dBuV. Range and step are driver-specific.</entry> >> +    </row> >> +    <row> >> +     <entry spanname="id"><constant>V4L2_CID_TUNE_ANTENNA_CAPACITOR</constant> </entry> >> +     <entry>integer</entry> >> +    </row> >> +    <row><entry spanname="descr">This selects the value of antenna tuning capacitor >> +manually or automatically if set to zero. Unit, range and step are driver-specific.</entry> >> +    </row> >> +    <row><entry></entry></row> >> +   </tbody> >> +    </tgroup> >> +    </table> >> + >> +<para>For more details about RDS specification, refer to >> +<xref linkend="en50067"> document, from CENELEC.</para> >> +   </section> >>  </section> >> >>   <!-- > > Regards, > >     Hans > > -- > Hans Verkuil - video4linux developer - sponsored by TANDBERG Telecom > -- > To unsubscribe from this list: send the line "unsubscribe linux-media" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at  http://vger.kernel.org/majordomo-info.html >
diff --git a/v4l2-spec/Makefile b/v4l2-spec/Makefile index 7a19924..bfe2965 100644 --- a/v4l2-spec/Makefile +++ b/v4l2-spec/Makefile @@ -242,6 +242,7 @@ ENUMS = \ v4l2_power_line_frequency \ v4l2_priority \ v4l2_tuner_type \ + v4l2_fm_tx_preemphasis \ STRUCTS = \ v4l2_audio \ diff --git a/v4l2-spec/biblio.sgml b/v4l2-spec/biblio.sgml index b013ece..0921849 100644 --- a/v4l2-spec/biblio.sgml +++ b/v4l2-spec/biblio.sgml @@ -11,6 +11,16 @@ url="http://www.eia.org">http://www.eia.org</ulink>)</corpauthor> Service"</title> </biblioentry> + <biblioentry id="en50067"> + <abbrev>EN 50067</abbrev> + <authorgroup> + <corpauthor>CENELEC European Committee for Electrotechnical Standardization +(<ulink url="http://www.cenelec.eu">http://www.cenelec.eu</ulink>)</corpauthor> + </authorgroup> + <title>EN 50067 "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="en300294"> <abbrev>EN 300 294</abbrev> <authorgroup> diff --git a/v4l2-spec/controls.sgml b/v4l2-spec/controls.sgml index 477a970..0bb6f00 100644 --- a/v4l2-spec/controls.sgml +++ b/v4l2-spec/controls.sgml @@ -458,6 +458,12 @@ video is actually encoded into that format.</para> <para>Unfortunately, the original control API lacked some features needed for these new uses and so it was extended into the (not terribly originally named) extended control API.</para> + + <para>Even though the MPEG encoding API was the first effort +to use the Extended Control API, nowadays there are also other classes +of Extended Controls, such as Camera Controls and FM Transmitter Controls. +The Extended Controls API as well as all Extended Controls classes are +described in the following text.</para> </section> <section> @@ -1816,6 +1822,205 @@ control must support read access and may support write access.</entry> </tgroup> </table> </section> + + <section id="fm-tx-controls"> + <title>FM Transmitter Control Reference</title> + + <para>The FM Transmitter (FM_TX) class includes controls for common features of +FM transmissions capable devices. Currently this class include parameters for audio +compression, pilot tone generation, audio deviation limiter, RDS transmission and +tuning power features.</para> + + <table pgwide="1" frame="none" id="fm-tx-control-id"> + <title>FM_TX Control IDs</title> + + <tgroup cols="4"> + <colspec colname="c1" colwidth="1*"> + <colspec colname="c2" colwidth="6*"> + <colspec colname="c3" colwidth="2*"> + <colspec colname="c4" colwidth="6*"> + <spanspec namest="c1" nameend="c2" spanname="id"> + <spanspec namest="c2" nameend="c4" spanname="descr"> + <thead> + <row> + <entry spanname="id" align="left">ID</entry> + <entry align="left">Type</entry> + </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry> + </row> + </thead> + <tbody valign="top"> + <row><entry></entry></row> + <row> + <entry spanname="id"><constant>V4L2_CID_FM_TX_CLASS</constant> </entry> + <entry>class</entry> + </row><row><entry spanname="descr">The FM_TX class +descriptor. Calling &VIDIOC-QUERYCTRL; for this control will return a +description of this control class.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_RDS_ENABLED</constant> </entry> + <entry>boolean</entry> + </row> + <row><entry spanname="descr">Enables or disables the RDS transmission feature.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_RDS_PI</constant> </entry> + <entry>integer</entry> + </row> + <row><entry spanname="descr">Sets the RDS Programme Identification field +for transmission.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_RDS_PTY</constant> </entry> + <entry>integer</entry> + </row> + <row><entry spanname="descr">Sets the RDS Programme Type field for transmission. +This coding of up to 31 pre-defined programme types.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_RDS_PS_NAME</constant> </entry> + <entry>string</entry> + </row> + <row><entry spanname="descr">Sets the Programme Service name (PS_NAME) for transmission. +It is intended for static display on a receiver. It is the primary aid to listeners in programme service +identification and selection. The use of PS to transmit text other than a single eight character name is not permitted.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_RDS_RADIO_TEXT</constant> </entry> + <entry>string</entry> + </row> + <row><entry spanname="descr">Sets the Radio Text info for transmission. It is a textual description of +what is being broadcasted. If broadcaster wishes to transmit longer PS names, programme-related information or any other +text, then RadioText should be used.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_AUDIO_LIMITER_ENABLED</constant> </entry> + <entry>boolean</entry> + </row> + <row><entry spanname="descr">Enables or disables the audio deviation limiter feature. +The limiter is useful when trying to maximize the audio volume, minimize receiver-generated +distortion and prevent overmodulation. +</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_AUDIO_LIMITER_RELEASE_TIME</constant> </entry> + <entry>integer</entry> + </row> + <row><entry spanname="descr">Sets the audio deviation limiter feature release time. +The unit, step and range are driver-specific.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_AUDIO_LIMITER_DEVIATION</constant> </entry> + <entry>integer</entry> + </row> + <row><entry spanname="descr">Configures audio frequency deviation level in Hz. +The range and step are driver-specific.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_ENABLED</constant> </entry> + <entry>boolean</entry> + </row> + <row><entry spanname="descr">Enables or disables the audio compression feature. +This feature amplifies signals below the threshold by a fixed gain and compresses audio +signals above the threshold by the ratio of Threshold/(Gain + Threshold).</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_GAIN</constant> </entry> + <entry>integer</entry> + </row> + <row><entry spanname="descr">Sets the gain for audio compression feature. It is +a dB value. The range and step are driver-specific.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_THRESHOLD</constant> </entry> + <entry>integer</entry> + </row> + <row><entry spanname="descr">Sets the threshold level for audio compression freature. +It is a dB value. The range and step are driver-specific.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME</constant> </entry> + <entry>integer</entry> + </row> + <row><entry spanname="descr">Sets the attack time for audio compression feature. +It is a useconds value. The range and step are driver-specific.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME</constant> </entry> + <entry>integer</entry> + </row> + <row><entry spanname="descr">Sets the release time for audio compression feature. +It is a useconds value. The range and step are driver-specific.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_PILOT_TONE_ENABLED</constant> </entry> + <entry>boolean</entry> + </row> + <row><entry spanname="descr">Enables or disables the pilot tone generation feature.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_PILOT_TONE_DEVIATION</constant> </entry> + <entry>integer</entry> + </row> + <row><entry spanname="descr">Configures pilot tone frequency deviation level. Unit is +in Hz. The range and step are driver-specific.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_PILOT_TONE_FREQUENCY</constant> </entry> + <entry>integer</entry> + </row> + <row><entry spanname="descr">Configures pilot tone frequency value. Unit is +in Hz. The range and step are driver-specific.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_PREEMPHASIS</constant> </entry> + <entry>integer</entry> + </row> + <row id="v4l2-fm-tx-preemphasis"><entry spanname="descr">Configures the pre-emphasis value for broadcasting. +A pre-emphasis filter is applied to the broadcast to accentuate the high audio frequencies. +Depending on the region, a time constant of either 50 or 75 useconds is used. The enum v4l2_fm_tx_preemphasis +defines possible values for pre-emphasis. Here they are:</entry> + </row><row> + <entrytbl spanname="descr" cols="2"> + <tbody valign="top"> + <row> + <entry><constant>V4L2_FM_TX_PREEMPHASIS_DISABLED</constant> </entry> + <entry>No pre-emphasis is applied.</entry> + </row> + <row> + <entry><constant>V4L2_FM_TX_PREEMPHASIS_50_uS</constant> </entry> + <entry>A pre-emphasis of 50 uS is used.</entry> + </row> + <row> + <entry><constant>V4L2_FM_TX_PREEMPHASIS_75_uS</constant> </entry> + <entry>A pre-emphasis of 75 uS is used.</entry> + </row> + </tbody> + </entrytbl> + + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_TUNE_POWER_LEVEL</constant> </entry> + <entry>integer</entry> + </row> + <row><entry spanname="descr">Sets the output power level for signal transmission. +Unit is in dBuV. Range and step are driver-specific.</entry> + </row> + <row> + <entry spanname="id"><constant>V4L2_CID_TUNE_ANTENNA_CAPACITOR</constant> </entry> + <entry>integer</entry> + </row> + <row><entry spanname="descr">This selects the value of antenna tuning capacitor +manually or automatically if set to zero. Unit, range and step are driver-specific.</entry> + </row> + <row><entry></entry></row> + </tbody> + </tgroup> + </table> + +<para>For more details about RDS specification, refer to +<xref linkend="en50067"> document, from CENELEC.</para> + </section> </section> <!--
This single patch adds documentation description for FM Modulator (FM_TX) Extended Control Class and its Control IDs. The text was added under "Extended Controls" section. Signed-off-by: Eduardo Valentin <eduardo.valentin@nokia.com> --- v4l2-spec/Makefile | 1 + v4l2-spec/biblio.sgml | 10 +++ v4l2-spec/controls.sgml | 205 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 216 insertions(+), 0 deletions(-)