2.3.6. Frontend uAPI data types¶
-
enum
fe_caps
¶ Frontend capabilities
Constants
FE_IS_STUPID
- There’s something wrong at the frontend, and it can’t report its capabilities.
FE_CAN_INVERSION_AUTO
- Can auto-detect frequency spectral band inversion
FE_CAN_FEC_1_2
- Supports FEC 1/2
FE_CAN_FEC_2_3
- Supports FEC 2/3
FE_CAN_FEC_3_4
- Supports FEC 3/4
FE_CAN_FEC_4_5
- Supports FEC 4/5
FE_CAN_FEC_5_6
- Supports FEC 5/6
FE_CAN_FEC_6_7
- Supports FEC 6/7
FE_CAN_FEC_7_8
- Supports FEC 7/8
FE_CAN_FEC_8_9
- Supports FEC 8/9
FE_CAN_FEC_AUTO
- Can auto-detect FEC
FE_CAN_QPSK
- Supports QPSK modulation
FE_CAN_QAM_16
- Supports 16-QAM modulation
FE_CAN_QAM_32
- Supports 32-QAM modulation
FE_CAN_QAM_64
- Supports 64-QAM modulation
FE_CAN_QAM_128
- Supports 128-QAM modulation
FE_CAN_QAM_256
- Supports 256-QAM modulation
FE_CAN_QAM_AUTO
- Can auto-detect QAM modulation
FE_CAN_TRANSMISSION_MODE_AUTO
- Can auto-detect transmission mode
FE_CAN_BANDWIDTH_AUTO
- Can auto-detect bandwidth
FE_CAN_GUARD_INTERVAL_AUTO
- Can auto-detect guard interval
FE_CAN_HIERARCHY_AUTO
- Can auto-detect hierarchy
FE_CAN_8VSB
- Supports 8-VSB modulation
FE_CAN_16VSB
- Supporta 16-VSB modulation
FE_HAS_EXTENDED_CAPS
- Unused
FE_CAN_MULTISTREAM
- Supports multistream filtering
FE_CAN_TURBO_FEC
- Supports “turbo FEC” modulation
FE_CAN_2G_MODULATION
- Supports “2nd generation” modulation, e. g. DVB-S2, DVB-T2, DVB-C2
FE_NEEDS_BENDING
- Unused
FE_CAN_RECOVER
- Can recover from a cable unplug automatically
FE_CAN_MUTE_TS
- Can stop spurious TS data output
-
struct
dvb_frontend_info
¶ Frontend properties and capabilities
Definition
struct dvb_frontend_info {
char name[128];
enum fe_type type;
__u32 frequency_min;
__u32 frequency_max;
__u32 frequency_stepsize;
__u32 frequency_tolerance;
__u32 symbol_rate_min;
__u32 symbol_rate_max;
__u32 symbol_rate_tolerance;
__u32 notifier_delay;
enum fe_caps caps;
};
Members
name
- Name of the frontend
type
- DEPRECATED.
Should not be used on modern programs,
as a frontend may have more than one type.
In order to get the support types of a given
frontend, use
DTV_ENUM_DELSYS
instead. frequency_min
- Minimal frequency supported by the frontend.
frequency_max
- Minimal frequency supported by the frontend.
frequency_stepsize
- All frequencies are multiple of this value.
frequency_tolerance
- Frequency tolerance.
symbol_rate_min
- Minimal symbol rate, in bauds (for Cable/Satellite systems).
symbol_rate_max
- Maximal symbol rate, in bauds (for Cable/Satellite systems).
symbol_rate_tolerance
- Maximal symbol rate tolerance, in ppm (for Cable/Satellite systems).
notifier_delay
- DEPRECATED. Not used by any driver.
caps
- Capabilities supported by the frontend,
as specified in
enum fe_caps
.
Description
-
struct
dvb_diseqc_master_cmd
¶ DiSEqC master command
Definition
struct dvb_diseqc_master_cmd {
__u8 msg[6];
__u8 msg_len;
};
Members
msg
- DiSEqC message to be sent. It contains a 3 bytes header with: framing + address + command, and an optional argument of up to 3 bytes of data.
msg_len
- Length of the DiSEqC message. Valid values are 3 to 6.
Description
Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for the possible messages that can be used.
-
struct
dvb_diseqc_slave_reply
¶ DiSEqC received data
Definition
struct dvb_diseqc_slave_reply {
__u8 msg[4];
__u8 msg_len;
int timeout;
};
Members
msg
- DiSEqC message buffer to store a message received via DiSEqC. It contains one byte header with: framing and an optional argument of up to 3 bytes of data.
msg_len
- Length of the DiSEqC message. Valid values are 0 to 4, where 0 means no message.
timeout
- Return from ioctl after timeout ms with errorcode when no message was received.
Description
Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for the possible messages that can be used.
-
enum
fe_sec_voltage
¶ DC Voltage used to feed the LNBf
Constants
SEC_VOLTAGE_13
- Output 13V to the LNBf
SEC_VOLTAGE_18
- Output 18V to the LNBf
SEC_VOLTAGE_OFF
- Don’t feed the LNBf with a DC voltage
-
enum
fe_sec_tone_mode
¶ Type of tone to be send to the LNBf.
Constants
SEC_TONE_ON
- Sends a 22kHz tone burst to the antenna.
SEC_TONE_OFF
- Don’t send a 22kHz tone to the antenna (except
if the
FE_DISEQC_*
ioctls are called).
-
enum
fe_sec_mini_cmd
¶ Type of mini burst to be sent
Constants
SEC_MINI_A
- Sends a mini-DiSEqC 22kHz ‘0’ Tone Burst to select satellite-A
SEC_MINI_B
- Sends a mini-DiSEqC 22kHz ‘1’ Data Burst to select satellite-B
-
enum
fe_status
¶ Enumerates the possible frontend status.
Constants
FE_NONE
- The frontend doesn’t have any kind of lock. That’s the initial frontend status
FE_HAS_SIGNAL
- Has found something above the noise level.
FE_HAS_CARRIER
- Has found a signal.
FE_HAS_VITERBI
- FEC inner coding (Viterbi, LDPC or other inner code). is stable.
FE_HAS_SYNC
- Synchronization bytes was found.
FE_HAS_LOCK
- Digital TV were locked and everything is working.
FE_TIMEDOUT
- Fo lock within the last about 2 seconds.
FE_REINIT
- Frontend was reinitialized, application is recommended to reset DiSEqC, tone and parameters.
-
enum
fe_spectral_inversion
¶ Type of inversion band
Constants
INVERSION_OFF
- Don’t do spectral band inversion.
INVERSION_ON
- Do spectral band inversion.
INVERSION_AUTO
- Autodetect spectral band inversion.
Description
This parameter indicates if spectral inversion should be presumed or
not. In the automatic setting (INVERSION_AUTO
) the hardware will try
to figure out the correct setting by itself. If the hardware doesn’t
support, the dvb_frontend
will try to lock at the carrier first with
inversion off. If it fails, it will try to enable inversion.
-
enum
fe_code_rate
¶ Type of Forward Error Correction (FEC)
Constants
FEC_NONE
- No Forward Error Correction Code
FEC_1_2
- Forward Error Correction Code 1/2
FEC_2_3
- Forward Error Correction Code 2/3
FEC_3_4
- Forward Error Correction Code 3/4
FEC_4_5
- Forward Error Correction Code 4/5
FEC_5_6
- Forward Error Correction Code 5/6
FEC_6_7
- Forward Error Correction Code 6/7
FEC_7_8
- Forward Error Correction Code 7/8
FEC_8_9
- Forward Error Correction Code 8/9
FEC_AUTO
- Autodetect Error Correction Code
FEC_3_5
- Forward Error Correction Code 3/5
FEC_9_10
- Forward Error Correction Code 9/10
FEC_2_5
- Forward Error Correction Code 2/5
Description
Please note that not all FEC types are supported by a given standard.
-
enum
fe_modulation
¶ Type of modulation/constellation
Constants
QPSK
- QPSK modulation
QAM_16
- 16-QAM modulation
QAM_32
- 32-QAM modulation
QAM_64
- 64-QAM modulation
QAM_128
- 128-QAM modulation
QAM_256
- 256-QAM modulation
QAM_AUTO
- Autodetect QAM modulation
VSB_8
- 8-VSB modulation
VSB_16
- 16-VSB modulation
PSK_8
- 8-PSK modulation
APSK_16
- 16-APSK modulation
APSK_32
- 32-APSK modulation
DQPSK
- DQPSK modulation
QAM_4_NR
- 4-QAM-NR modulation
Description
Please note that not all modulations are supported by a given standard.
-
enum
fe_transmit_mode
¶ Transmission mode
Constants
TRANSMISSION_MODE_2K
- Transmission mode 2K
TRANSMISSION_MODE_8K
- Transmission mode 8K
TRANSMISSION_MODE_AUTO
- Autodetect transmission mode. The hardware will try to find the correct FFT-size (if capable) to fill in the missing parameters.
TRANSMISSION_MODE_4K
- Transmission mode 4K
TRANSMISSION_MODE_1K
- Transmission mode 1K
TRANSMISSION_MODE_16K
- Transmission mode 16K
TRANSMISSION_MODE_32K
- Transmission mode 32K
TRANSMISSION_MODE_C1
- Single Carrier (C=1) transmission mode (DTMB only)
TRANSMISSION_MODE_C3780
- Multi Carrier (C=3780) transmission mode (DTMB only)
Description
Please note that not all transmission modes are supported by a given standard.
-
enum
fe_guard_interval
¶ Guard interval
Constants
GUARD_INTERVAL_1_32
- Guard interval 1/32
GUARD_INTERVAL_1_16
- Guard interval 1/16
GUARD_INTERVAL_1_8
- Guard interval 1/8
GUARD_INTERVAL_1_4
- Guard interval 1/4
GUARD_INTERVAL_AUTO
- Autodetect the guard interval
GUARD_INTERVAL_1_128
- Guard interval 1/128
GUARD_INTERVAL_19_128
- Guard interval 19/128
GUARD_INTERVAL_19_256
- Guard interval 19/256
GUARD_INTERVAL_PN420
- PN length 420 (1/4)
GUARD_INTERVAL_PN595
- PN length 595 (1/6)
GUARD_INTERVAL_PN945
- PN length 945 (1/9)
Description
Please note that not all guard intervals are supported by a given standard.
-
enum
fe_hierarchy
¶ Hierarchy
Constants
HIERARCHY_NONE
- No hierarchy
HIERARCHY_1
- Hierarchy 1
HIERARCHY_2
- Hierarchy 2
HIERARCHY_4
- Hierarchy 4
HIERARCHY_AUTO
- Autodetect hierarchy (if supported)
Description
Please note that not all hierarchy types are supported by a given standard.
-
enum
fe_interleaving
¶ Interleaving
Constants
INTERLEAVING_NONE
- No interleaving.
INTERLEAVING_AUTO
- Auto-detect interleaving.
INTERLEAVING_240
- Interleaving of 240 symbols.
INTERLEAVING_720
- Interleaving of 720 symbols.
Description
Please note that, currently, only DTMB uses it.
-
enum
fe_pilot
¶ Type of pilot tone
Constants
PILOT_ON
- Pilot tones enabled
PILOT_OFF
- Pilot tones disabled
PILOT_AUTO
- Autodetect pilot tones
-
enum
fe_rolloff
¶ Rolloff factor
Constants
ROLLOFF_35
- Roloff factor: α=35%
ROLLOFF_20
- Roloff factor: α=20%
ROLLOFF_25
- Roloff factor: α=25%
ROLLOFF_AUTO
- Auto-detect the roloff factor.
Description
-
enum
fe_delivery_system
¶ Type of the delivery system
Constants
SYS_UNDEFINED
- Undefined standard. Generally, indicates an error
SYS_DVBC_ANNEX_A
- Cable TV: DVB-C following ITU-T J.83 Annex A spec
SYS_DVBC_ANNEX_B
- Cable TV: DVB-C following ITU-T J.83 Annex B spec (ClearQAM)
SYS_DVBT
- Terrestrial TV: DVB-T
SYS_DSS
- Satellite TV: DSS (not fully supported)
SYS_DVBS
- Satellite TV: DVB-S
SYS_DVBS2
- Satellite TV: DVB-S2
SYS_DVBH
- Terrestrial TV (mobile): DVB-H (standard deprecated)
SYS_ISDBT
- Terrestrial TV: ISDB-T
SYS_ISDBS
- Satellite TV: ISDB-S
SYS_ISDBC
- Cable TV: ISDB-C (no drivers yet)
SYS_ATSC
- Terrestrial TV: ATSC
SYS_ATSCMH
- Terrestrial TV (mobile): ATSC-M/H
SYS_DTMB
- Terrestrial TV: DTMB
SYS_CMMB
- Terrestrial TV (mobile): CMMB (not fully supported)
SYS_DAB
- Digital audio: DAB (not fully supported)
SYS_DVBT2
- Terrestrial TV: DVB-T2
SYS_TURBO
- Satellite TV: DVB-S Turbo
SYS_DVBC_ANNEX_C
- Cable TV: DVB-C following ITU-T J.83 Annex C spec
-
enum
atscmh_sccc_block_mode
¶ Type of Series Concatenated Convolutional Code Block Mode.
Constants
ATSCMH_SCCC_BLK_SEP
- Separate SCCC: the SCCC outer code mode shall be set independently for each Group Region (A, B, C, D)
ATSCMH_SCCC_BLK_COMB
- Combined SCCC: all four Regions shall have the same SCCC outer code mode.
ATSCMH_SCCC_BLK_RES
- Reserved. Shouldn’t be used.
-
enum
atscmh_sccc_code_mode
¶ Type of Series Concatenated Convolutional Code Rate.
Constants
ATSCMH_SCCC_CODE_HLF
- The outer code rate of a SCCC Block is 1/2 rate.
ATSCMH_SCCC_CODE_QTR
- The outer code rate of a SCCC Block is 1/4 rate.
ATSCMH_SCCC_CODE_RES
- Reserved. Should not be used.
-
enum
atscmh_rs_frame_ensemble
¶ Reed Solomon(RS) frame ensemble.
Constants
ATSCMH_RSFRAME_ENS_PRI
- Primary Ensemble.
ATSCMH_RSFRAME_ENS_SEC
- Secondary Ensemble.
-
enum
atscmh_rs_frame_mode
¶ Reed Solomon (RS) frame mode.
Constants
ATSCMH_RSFRAME_PRI_ONLY
- Single Frame: There is only a primary RS Frame for all Group Regions.
ATSCMH_RSFRAME_PRI_SEC
- Dual Frame: There are two separate RS Frames: Primary RS Frame for Group Region A and B and Secondary RS Frame for Group Region C and D.
ATSCMH_RSFRAME_RES
- Reserved. Shouldn’t be used.
-
enum
atscmh_rs_code_mode
¶
Constants
ATSCMH_RSCODE_211_187
- Reed Solomon code (211,187).
ATSCMH_RSCODE_223_187
- Reed Solomon code (223,187).
ATSCMH_RSCODE_235_187
- Reed Solomon code (235,187).
ATSCMH_RSCODE_RES
- Reserved. Shouldn’t be used.
-
enum
fecap_scale_params
¶ scale types for the quality parameters.
Constants
FE_SCALE_NOT_AVAILABLE
- That QoS measure is not available. That could indicate a temporary or a permanent condition.
FE_SCALE_DECIBEL
- The scale is measured in 0.001 dB steps, typically used on signal measures.
FE_SCALE_RELATIVE
- The scale is a relative percentual measure, ranging from 0 (0%) to 0xffff (100%).
FE_SCALE_COUNTER
- The scale counts the occurrence of an event, like bit error, block error, lapsed time.
-
struct
dtv_stats
¶ Used for reading a DTV status property
Definition
struct dtv_stats {
__u8 scale;
union {
__u64 uvalue;
__s64 svalue;
};
};
Members
scale
- Filled with enum fecap_scale_params - the scale in usage for that parameter
{unnamed_union}
- anonymous
uvalue
- unsigned integer value of the measure, used when scale is
either
FE_SCALE_RELATIVE
orFE_SCALE_COUNTER
. svalue
- integer value of the measure, for
FE_SCALE_DECIBEL
, used for dB measures. The unit is 0.001 dB.
Description
For most delivery systems, this will return a single value for each parameter.
It should be noticed, however, that new OFDM delivery systems like ISDB can use different modulation types for each group of carriers. On such standards, up to 8 groups of statistics can be provided, one for each carrier group (called “layer” on ISDB).
In order to be consistent with other delivery systems, the first value refers to the entire set of carriers (“global”).
scale should use the value FE_SCALE_NOT_AVAILABLE
when
the value for the entire group of carriers or from one specific layer
is not provided by the hardware.
len should be filled with the latest filled status + 1.
In other words, for ISDB, those values should be filled like:
u.st.stat.svalue[0] = global statistics;
u.st.stat.scale[0] = FE_SCALE_DECIBEL;
u.st.stat.value[1] = layer A statistics;
u.st.stat.scale[1] = FE_SCALE_NOT_AVAILABLE (if not available);
u.st.stat.svalue[2] = layer B statistics;
u.st.stat.scale[2] = FE_SCALE_DECIBEL;
u.st.stat.svalue[3] = layer C statistics;
u.st.stat.scale[3] = FE_SCALE_DECIBEL;
u.st.len = 4;
-
struct
dtv_fe_stats
¶ store Digital TV frontend statistics
Definition
struct dtv_fe_stats {
__u8 len;
struct dtv_stats stat[MAX_DTV_STATS];
};
Members
len
- length of the statistics - if zero, stats is disabled.
stat
- array with digital TV statistics.
Description
On most standards, len can either be 0 or 1. However, for ISDB, each layer is modulated in separate. So, each layer may have its own set of statistics. If so, stat[0] carries on a global value for the property. Indexes 1 to 3 means layer A to B.
-
struct
dtv_property
¶ store one of frontend command and its value
Definition
struct dtv_property {
__u32 cmd;
__u32 reserved[3];
union {
__u32 data;
struct dtv_fe_stats st;
struct {
__u8 data[32];
__u32 len;
__u32 reserved1[3];
void *reserved2;
} buffer;
} u;
int result;
};
Members
cmd
- Digital TV command.
reserved
- Not used.
u
- Union with the values for the command.
u.data
- A unsigned 32 bits integer with command value.
u.st
- a
struct dtv_fe_stats
array of statistics. u.buffer
- Struct to store bigger properties. Currently unused.
u.buffer.data
- an unsigned 32-bits array.
u.buffer.len
- number of elements of the buffer.
u.buffer.reserved1
- Reserved.
u.buffer.reserved2
- Reserved.
result
- Currently unused.
-
struct
dtv_properties
¶ a set of command/value pairs.
Definition
struct dtv_properties {
__u32 num;
struct dtv_property *props;
};
Members
num
- amount of commands stored at the struct.
props
- a pointer to
struct dtv_property
.