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 or FE_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.