2020-08-26 15:03:09 +08:00
|
|
|
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
|
2019-02-08 17:53:50 +08:00
|
|
|
|
|
|
|
.. _fm-tx-controls:
|
|
|
|
|
|
|
|
********************************
|
|
|
|
FM Transmitter Control Reference
|
|
|
|
********************************
|
|
|
|
|
|
|
|
The FM Transmitter (FM_TX) class includes controls for common features
|
|
|
|
of FM transmissions capable devices. Currently this class includes
|
|
|
|
parameters for audio compression, pilot tone generation, audio deviation
|
|
|
|
limiter, RDS transmission and tuning power features.
|
|
|
|
|
|
|
|
|
|
|
|
.. _fm-tx-control-id:
|
|
|
|
|
|
|
|
FM_TX Control IDs
|
|
|
|
=================
|
|
|
|
|
|
|
|
``V4L2_CID_FM_TX_CLASS (class)``
|
|
|
|
The FM_TX class descriptor. Calling
|
|
|
|
:ref:`VIDIOC_QUERYCTRL` for this control will
|
|
|
|
return a description of this control class.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_DEVIATION (integer)``
|
|
|
|
Configures RDS signal frequency deviation level in Hz. The range and
|
|
|
|
step are driver-specific.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_PI (integer)``
|
|
|
|
Sets the RDS Programme Identification field for transmission.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_PTY (integer)``
|
|
|
|
Sets the RDS Programme Type field for transmission. This encodes up
|
|
|
|
to 31 pre-defined programme types.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_PS_NAME (string)``
|
|
|
|
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. In
|
|
|
|
Annex E of :ref:`iec62106`, the RDS specification, there is a full
|
|
|
|
description of the correct character encoding for Programme Service
|
|
|
|
name strings. Also from RDS specification, PS is usually a single
|
|
|
|
eight character text. However, it is also possible to find receivers
|
|
|
|
which can scroll strings sized as 8 x N characters. So, this control
|
|
|
|
must be configured with steps of 8 characters. The result is it must
|
|
|
|
always contain a string with size multiple of 8.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_RADIO_TEXT (string)``
|
|
|
|
Sets the Radio Text info for transmission. It is a textual
|
|
|
|
description of what is being broadcasted. RDS Radio Text can be
|
|
|
|
applied when broadcaster wishes to transmit longer PS names,
|
|
|
|
programme-related information or any other text. In these cases,
|
|
|
|
RadioText should be used in addition to ``V4L2_CID_RDS_TX_PS_NAME``.
|
|
|
|
The encoding for Radio Text strings is also fully described in Annex
|
|
|
|
E of :ref:`iec62106`. The length of Radio Text strings depends on
|
|
|
|
which RDS Block is being used to transmit it, either 32 (2A block)
|
|
|
|
or 64 (2B block). However, it is also possible to find receivers
|
|
|
|
which can scroll strings sized as 32 x N or 64 x N characters. So,
|
|
|
|
this control must be configured with steps of 32 or 64 characters.
|
|
|
|
The result is it must always contain a string with size multiple of
|
|
|
|
32 or 64.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_MONO_STEREO (boolean)``
|
|
|
|
Sets the Mono/Stereo bit of the Decoder Identification code. If set,
|
|
|
|
then the audio was recorded as stereo.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_ARTIFICIAL_HEAD (boolean)``
|
|
|
|
Sets the
|
|
|
|
`Artificial Head <http://en.wikipedia.org/wiki/Artificial_head>`__
|
|
|
|
bit of the Decoder Identification code. If set, then the audio was
|
|
|
|
recorded using an artificial head.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_COMPRESSED (boolean)``
|
|
|
|
Sets the Compressed bit of the Decoder Identification code. If set,
|
|
|
|
then the audio is compressed.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_DYNAMIC_PTY (boolean)``
|
|
|
|
Sets the Dynamic PTY bit of the Decoder Identification code. If set,
|
|
|
|
then the PTY code is dynamically switched.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT (boolean)``
|
|
|
|
If set, then a traffic announcement is in progress.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_TRAFFIC_PROGRAM (boolean)``
|
|
|
|
If set, then the tuned programme carries traffic announcements.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_MUSIC_SPEECH (boolean)``
|
|
|
|
If set, then this channel broadcasts music. If cleared, then it
|
|
|
|
broadcasts speech. If the transmitter doesn't make this distinction,
|
|
|
|
then it should be set.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_ALT_FREQS_ENABLE (boolean)``
|
|
|
|
If set, then transmit alternate frequencies.
|
|
|
|
|
|
|
|
``V4L2_CID_RDS_TX_ALT_FREQS (__u32 array)``
|
|
|
|
The alternate frequencies in kHz units. The RDS standard allows for
|
|
|
|
up to 25 frequencies to be defined. Drivers may support fewer
|
|
|
|
frequencies so check the array size.
|
|
|
|
|
|
|
|
``V4L2_CID_AUDIO_LIMITER_ENABLED (boolean)``
|
|
|
|
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.
|
|
|
|
|
|
|
|
``V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (integer)``
|
|
|
|
Sets the audio deviation limiter feature release time. Unit is in
|
|
|
|
useconds. Step and range are driver-specific.
|
|
|
|
|
|
|
|
``V4L2_CID_AUDIO_LIMITER_DEVIATION (integer)``
|
|
|
|
Configures audio frequency deviation level in Hz. The range and step
|
|
|
|
are driver-specific.
|
|
|
|
|
|
|
|
``V4L2_CID_AUDIO_COMPRESSION_ENABLED (boolean)``
|
|
|
|
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).
|
|
|
|
|
|
|
|
``V4L2_CID_AUDIO_COMPRESSION_GAIN (integer)``
|
|
|
|
Sets the gain for audio compression feature. It is a dB value. The
|
|
|
|
range and step are driver-specific.
|
|
|
|
|
|
|
|
``V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (integer)``
|
|
|
|
Sets the threshold level for audio compression freature. It is a dB
|
|
|
|
value. The range and step are driver-specific.
|
|
|
|
|
|
|
|
``V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (integer)``
|
|
|
|
Sets the attack time for audio compression feature. It is a useconds
|
|
|
|
value. The range and step are driver-specific.
|
|
|
|
|
|
|
|
``V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (integer)``
|
|
|
|
Sets the release time for audio compression feature. It is a
|
|
|
|
useconds value. The range and step are driver-specific.
|
|
|
|
|
|
|
|
``V4L2_CID_PILOT_TONE_ENABLED (boolean)``
|
|
|
|
Enables or disables the pilot tone generation feature.
|
|
|
|
|
|
|
|
``V4L2_CID_PILOT_TONE_DEVIATION (integer)``
|
|
|
|
Configures pilot tone frequency deviation level. Unit is in Hz. The
|
|
|
|
range and step are driver-specific.
|
|
|
|
|
|
|
|
``V4L2_CID_PILOT_TONE_FREQUENCY (integer)``
|
|
|
|
Configures pilot tone frequency value. Unit is in Hz. The range and
|
|
|
|
step are driver-specific.
|
|
|
|
|
|
|
|
``V4L2_CID_TUNE_PREEMPHASIS``
|
|
|
|
(enum)
|
|
|
|
|
|
|
|
enum v4l2_preemphasis -
|
|
|
|
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_preemphasis defines possible
|
|
|
|
values for pre-emphasis. Here they are:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. flat-table::
|
|
|
|
:header-rows: 0
|
|
|
|
:stub-columns: 0
|
|
|
|
|
|
|
|
* - ``V4L2_PREEMPHASIS_DISABLED``
|
|
|
|
- No pre-emphasis is applied.
|
|
|
|
* - ``V4L2_PREEMPHASIS_50_uS``
|
|
|
|
- A pre-emphasis of 50 uS is used.
|
|
|
|
* - ``V4L2_PREEMPHASIS_75_uS``
|
|
|
|
- A pre-emphasis of 75 uS is used.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
``V4L2_CID_TUNE_POWER_LEVEL (integer)``
|
|
|
|
Sets the output power level for signal transmission. Unit is in
|
|
|
|
dBuV. Range and step are driver-specific.
|
|
|
|
|
|
|
|
``V4L2_CID_TUNE_ANTENNA_CAPACITOR (integer)``
|
|
|
|
This selects the value of antenna tuning capacitor manually or
|
|
|
|
automatically if set to zero. Unit, range and step are
|
|
|
|
driver-specific.
|
|
|
|
|
|
|
|
For more details about RDS specification, refer to :ref:`iec62106`
|
|
|
|
document, from CENELEC.
|