1 .. SPDX-License-Identifier: GFDL-1.1-no-invari 1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2 2 3 .. c:type:: dvb_frontend_parameters 3 .. c:type:: dvb_frontend_parameters 4 4 5 ******************* 5 ******************* 6 frontend parameters 6 frontend parameters 7 ******************* 7 ******************* 8 8 9 The kind of parameters passed to the frontend 9 The kind of parameters passed to the frontend device for tuning depend 10 on the kind of hardware you are using. 10 on the kind of hardware you are using. 11 11 12 The struct ``dvb_frontend_parameters`` uses a 12 The struct ``dvb_frontend_parameters`` uses a union with specific 13 per-system parameters. However, as newer deliv 13 per-system parameters. However, as newer delivery systems required more 14 data, the structure size weren't enough to fit 14 data, the structure size weren't enough to fit, and just extending its 15 size would break the existing applications. So 15 size would break the existing applications. So, those parameters were 16 replaced by the usage of 16 replaced by the usage of 17 :ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_ 17 :ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_PROPERTY>` 18 ioctl's. The new API is flexible enough to add 18 ioctl's. The new API is flexible enough to add new parameters to 19 existing delivery systems, and to add newer de 19 existing delivery systems, and to add newer delivery systems. 20 20 21 So, newer applications should use 21 So, newer applications should use 22 :ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_ 22 :ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_PROPERTY>` 23 instead, in order to be able to support the ne 23 instead, in order to be able to support the newer System Delivery like 24 DVB-S2, DVB-T2, DVB-C2, ISDB, etc. 24 DVB-S2, DVB-T2, DVB-C2, ISDB, etc. 25 25 26 All kinds of parameters are combined as a unio 26 All kinds of parameters are combined as a union in the 27 ``dvb_frontend_parameters`` structure: 27 ``dvb_frontend_parameters`` structure: 28 28 29 29 30 .. code-block:: c 30 .. code-block:: c 31 31 32 struct dvb_frontend_parameters { 32 struct dvb_frontend_parameters { 33 uint32_t frequency; /* (absolute) 33 uint32_t frequency; /* (absolute) frequency in Hz for QAM/OFDM */ 34 /* intermediate frequency 34 /* intermediate frequency in kHz for QPSK */ 35 fe_spectral_inversion_t inversion; 35 fe_spectral_inversion_t inversion; 36 union { 36 union { 37 struct dvb_qpsk_parameters qpsk; 37 struct dvb_qpsk_parameters qpsk; 38 struct dvb_qam_parameters qam; 38 struct dvb_qam_parameters qam; 39 struct dvb_ofdm_parameters ofdm; 39 struct dvb_ofdm_parameters ofdm; 40 struct dvb_vsb_parameters vsb; 40 struct dvb_vsb_parameters vsb; 41 } u; 41 } u; 42 }; 42 }; 43 43 44 In the case of QPSK frontends the ``frequency` 44 In the case of QPSK frontends the ``frequency`` field specifies the 45 intermediate frequency, i.e. the offset which 45 intermediate frequency, i.e. the offset which is effectively added to 46 the local oscillator frequency (LOF) of the LN 46 the local oscillator frequency (LOF) of the LNB. The intermediate 47 frequency has to be specified in units of kHz. 47 frequency has to be specified in units of kHz. For QAM and OFDM 48 frontends the ``frequency`` specifies the abso 48 frontends the ``frequency`` specifies the absolute frequency and is 49 given in Hz. 49 given in Hz. 50 50 51 51 52 .. c:type:: dvb_qpsk_parameters 52 .. c:type:: dvb_qpsk_parameters 53 53 54 QPSK parameters 54 QPSK parameters 55 =============== 55 =============== 56 56 57 For satellite QPSK frontends you have to use t 57 For satellite QPSK frontends you have to use the ``dvb_qpsk_parameters`` 58 structure: 58 structure: 59 59 60 60 61 .. code-block:: c 61 .. code-block:: c 62 62 63 struct dvb_qpsk_parameters { 63 struct dvb_qpsk_parameters { 64 uint32_t symbol_rate; /* symb 64 uint32_t symbol_rate; /* symbol rate in Symbols per second */ 65 fe_code_rate_t fec_inner; /* forw 65 fe_code_rate_t fec_inner; /* forward error correction (see above) */ 66 }; 66 }; 67 67 68 68 69 .. c:type:: dvb_qam_parameters 69 .. c:type:: dvb_qam_parameters 70 70 71 QAM parameters 71 QAM parameters 72 ============== 72 ============== 73 73 74 for cable QAM frontend you use the ``dvb_qam_p 74 for cable QAM frontend you use the ``dvb_qam_parameters`` structure: 75 75 76 76 77 .. code-block:: c 77 .. code-block:: c 78 78 79 struct dvb_qam_parameters { 79 struct dvb_qam_parameters { 80 uint32_t symbol_rate; /* symb 80 uint32_t symbol_rate; /* symbol rate in Symbols per second */ 81 fe_code_rate_t fec_inner; /* forw 81 fe_code_rate_t fec_inner; /* forward error correction (see above) */ 82 fe_modulation_t modulation; /* modu 82 fe_modulation_t modulation; /* modulation type (see above) */ 83 }; 83 }; 84 84 85 85 86 .. c:type:: dvb_vsb_parameters 86 .. c:type:: dvb_vsb_parameters 87 87 88 VSB parameters 88 VSB parameters 89 ============== 89 ============== 90 90 91 ATSC frontends are supported by the ``dvb_vsb_ 91 ATSC frontends are supported by the ``dvb_vsb_parameters`` structure: 92 92 93 93 94 .. code-block:: c 94 .. code-block:: c 95 95 96 struct dvb_vsb_parameters { 96 struct dvb_vsb_parameters { 97 fe_modulation_t modulation; /* modulat 97 fe_modulation_t modulation; /* modulation type (see above) */ 98 }; 98 }; 99 99 100 100 101 .. c:type:: dvb_ofdm_parameters 101 .. c:type:: dvb_ofdm_parameters 102 102 103 OFDM parameters 103 OFDM parameters 104 =============== 104 =============== 105 105 106 DVB-T frontends are supported by the ``dvb_ofd 106 DVB-T frontends are supported by the ``dvb_ofdm_parameters`` structure: 107 107 108 108 109 .. code-block:: c 109 .. code-block:: c 110 110 111 struct dvb_ofdm_parameters { 111 struct dvb_ofdm_parameters { 112 fe_bandwidth_t bandwidth; 112 fe_bandwidth_t bandwidth; 113 fe_code_rate_t code_rate_HP; /* 113 fe_code_rate_t code_rate_HP; /* high priority stream code rate */ 114 fe_code_rate_t code_rate_LP; /* 114 fe_code_rate_t code_rate_LP; /* low priority stream code rate */ 115 fe_modulation_t constellation; /* 115 fe_modulation_t constellation; /* modulation type (see above) */ 116 fe_transmit_mode_t transmission_mode 116 fe_transmit_mode_t transmission_mode; 117 fe_guard_interval_t guard_interval; 117 fe_guard_interval_t guard_interval; 118 fe_hierarchy_t hierarchy_informa 118 fe_hierarchy_t hierarchy_information; 119 }; 119 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.