xref: /linux/Documentation/userspace-api/media/v4l/ext-ctrls-fm-tx.rst (revision 778b8ebe5192e7a7f00563a7456517dfa63e1d90)
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2.. c:namespace:: V4L
3
4.. _fm-tx-controls:
5
6********************************
7FM Transmitter Control Reference
8********************************
9
10The FM Transmitter (FM_TX) class includes controls for common features
11of FM transmissions capable devices. Currently this class includes
12parameters for audio compression, pilot tone generation, audio deviation
13limiter, RDS transmission and tuning power features.
14
15
16.. _fm-tx-control-id:
17
18FM_TX Control IDs
19=================
20
21``V4L2_CID_FM_TX_CLASS (class)``
22    The FM_TX class descriptor. Calling
23    :ref:`VIDIOC_QUERYCTRL` for this control will
24    return a description of this control class.
25
26``V4L2_CID_RDS_TX_DEVIATION (integer)``
27    Configures RDS signal frequency deviation level in Hz. The range and
28    step are driver-specific.
29
30``V4L2_CID_RDS_TX_PI (integer)``
31    Sets the RDS Programme Identification field for transmission.
32
33``V4L2_CID_RDS_TX_PTY (integer)``
34    Sets the RDS Programme Type field for transmission. This encodes up
35    to 31 pre-defined programme types.
36
37``V4L2_CID_RDS_TX_PS_NAME (string)``
38    Sets the Programme Service name (PS_NAME) for transmission. It is
39    intended for static display on a receiver. It is the primary aid to
40    listeners in programme service identification and selection. In
41    Annex E of :ref:`iec62106`, the RDS specification, there is a full
42    description of the correct character encoding for Programme Service
43    name strings. Also from RDS specification, PS is usually a single
44    eight character text. However, it is also possible to find receivers
45    which can scroll strings sized as 8 x N characters. So, this control
46    must be configured with steps of 8 characters. The result is it must
47    always contain a string with size multiple of 8.
48
49``V4L2_CID_RDS_TX_RADIO_TEXT (string)``
50    Sets the Radio Text info for transmission. It is a textual
51    description of what is being broadcasted. RDS Radio Text can be
52    applied when broadcaster wishes to transmit longer PS names,
53    programme-related information or any other text. In these cases,
54    RadioText should be used in addition to ``V4L2_CID_RDS_TX_PS_NAME``.
55    The encoding for Radio Text strings is also fully described in Annex
56    E of :ref:`iec62106`. The length of Radio Text strings depends on
57    which RDS Block is being used to transmit it, either 32 (2A block)
58    or 64 (2B block). However, it is also possible to find receivers
59    which can scroll strings sized as 32 x N or 64 x N characters. So,
60    this control must be configured with steps of 32 or 64 characters.
61    The result is it must always contain a string with size multiple of
62    32 or 64.
63
64``V4L2_CID_RDS_TX_MONO_STEREO (boolean)``
65    Sets the Mono/Stereo bit of the Decoder Identification code. If set,
66    then the audio was recorded as stereo.
67
68``V4L2_CID_RDS_TX_ARTIFICIAL_HEAD (boolean)``
69    Sets the
70    `Artificial Head <http://en.wikipedia.org/wiki/Artificial_head>`__
71    bit of the Decoder Identification code. If set, then the audio was
72    recorded using an artificial head.
73
74``V4L2_CID_RDS_TX_COMPRESSED (boolean)``
75    Sets the Compressed bit of the Decoder Identification code. If set,
76    then the audio is compressed.
77
78``V4L2_CID_RDS_TX_DYNAMIC_PTY (boolean)``
79    Sets the Dynamic PTY bit of the Decoder Identification code. If set,
80    then the PTY code is dynamically switched.
81
82``V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT (boolean)``
83    If set, then a traffic announcement is in progress.
84
85``V4L2_CID_RDS_TX_TRAFFIC_PROGRAM (boolean)``
86    If set, then the tuned programme carries traffic announcements.
87
88``V4L2_CID_RDS_TX_MUSIC_SPEECH (boolean)``
89    If set, then this channel broadcasts music. If cleared, then it
90    broadcasts speech. If the transmitter doesn't make this distinction,
91    then it should be set.
92
93``V4L2_CID_RDS_TX_ALT_FREQS_ENABLE (boolean)``
94    If set, then transmit alternate frequencies.
95
96``V4L2_CID_RDS_TX_ALT_FREQS (__u32 array)``
97    The alternate frequencies in kHz units. The RDS standard allows for
98    up to 25 frequencies to be defined. Drivers may support fewer
99    frequencies so check the array size.
100
101``V4L2_CID_AUDIO_LIMITER_ENABLED (boolean)``
102    Enables or disables the audio deviation limiter feature. The limiter
103    is useful when trying to maximize the audio volume, minimize
104    receiver-generated distortion and prevent overmodulation.
105
106``V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (integer)``
107    Sets the audio deviation limiter feature release time. Unit is in
108    microseconds. Step and range are driver-specific.
109
110``V4L2_CID_AUDIO_LIMITER_DEVIATION (integer)``
111    Configures audio frequency deviation level in Hz. The range and step
112    are driver-specific.
113
114``V4L2_CID_AUDIO_COMPRESSION_ENABLED (boolean)``
115    Enables or disables the audio compression feature. This feature
116    amplifies signals below the threshold by a fixed gain and compresses
117    audio signals above the threshold by the ratio of Threshold/(Gain +
118    Threshold).
119
120``V4L2_CID_AUDIO_COMPRESSION_GAIN (integer)``
121    Sets the gain for audio compression feature. It is a dB value. The
122    range and step are driver-specific.
123
124``V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (integer)``
125    Sets the threshold level for audio compression feature. It is a dB
126    value. The range and step are driver-specific.
127
128``V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (integer)``
129    Sets the attack time for audio compression feature. It is a microseconds
130    value. The range and step are driver-specific.
131
132``V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (integer)``
133    Sets the release time for audio compression feature. It is a
134    microseconds value. The range and step are driver-specific.
135
136``V4L2_CID_PILOT_TONE_ENABLED (boolean)``
137    Enables or disables the pilot tone generation feature.
138
139``V4L2_CID_PILOT_TONE_DEVIATION (integer)``
140    Configures pilot tone frequency deviation level. Unit is in Hz. The
141    range and step are driver-specific.
142
143``V4L2_CID_PILOT_TONE_FREQUENCY (integer)``
144    Configures pilot tone frequency value. Unit is in Hz. The range and
145    step are driver-specific.
146
147``V4L2_CID_TUNE_PREEMPHASIS (enum)``
148    Configures the pre-emphasis value for broadcasting. A pre-emphasis
149    filter is applied to the broadcast to accentuate the high audio
150    frequencies. Depending on the region, a time constant of either 50
151    or 75 microseconds is used. The enum v4l2_preemphasis defines possible
152    values for pre-emphasis. They are:
153
154.. flat-table::
155    :header-rows:  0
156    :stub-columns: 0
157
158    * - ``V4L2_PREEMPHASIS_DISABLED``
159      - No pre-emphasis is applied.
160    * - ``V4L2_PREEMPHASIS_50_uS``
161      - A pre-emphasis of 50 uS is used.
162    * - ``V4L2_PREEMPHASIS_75_uS``
163      - A pre-emphasis of 75 uS is used.
164
165``V4L2_CID_TUNE_POWER_LEVEL (integer)``
166    Sets the output power level for signal transmission. Unit is in
167    dBuV. Range and step are driver-specific.
168
169``V4L2_CID_TUNE_ANTENNA_CAPACITOR (integer)``
170    This selects the value of antenna tuning capacitor manually or
171    automatically if set to zero. Unit, range and step are
172    driver-specific.
173
174For more details about RDS specification, refer to :ref:`iec62106`
175document, from CENELEC.
176