mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.3 KiB
119 lines
3.3 KiB
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
|
|
|
.. c:type:: dvb_frontend_parameters |
|
|
|
******************* |
|
frontend parameters |
|
******************* |
|
|
|
The kind of parameters passed to the frontend device for tuning depend |
|
on the kind of hardware you are using. |
|
|
|
The struct ``dvb_frontend_parameters`` uses a union with specific |
|
per-system parameters. However, as newer delivery systems required more |
|
data, the structure size weren't enough to fit, and just extending its |
|
size would break the existing applications. So, those parameters were |
|
replaced by the usage of |
|
:ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_PROPERTY>` |
|
ioctl's. The new API is flexible enough to add new parameters to |
|
existing delivery systems, and to add newer delivery systems. |
|
|
|
So, newer applications should use |
|
:ref:`FE_GET_PROPERTY/FE_SET_PROPERTY <FE_GET_PROPERTY>` |
|
instead, in order to be able to support the newer System Delivery like |
|
DVB-S2, DVB-T2, DVB-C2, ISDB, etc. |
|
|
|
All kinds of parameters are combined as a union in the |
|
``dvb_frontend_parameters`` structure: |
|
|
|
|
|
.. code-block:: c |
|
|
|
struct dvb_frontend_parameters { |
|
uint32_t frequency; /* (absolute) frequency in Hz for QAM/OFDM */ |
|
/* intermediate frequency in kHz for QPSK */ |
|
fe_spectral_inversion_t inversion; |
|
union { |
|
struct dvb_qpsk_parameters qpsk; |
|
struct dvb_qam_parameters qam; |
|
struct dvb_ofdm_parameters ofdm; |
|
struct dvb_vsb_parameters vsb; |
|
} u; |
|
}; |
|
|
|
In the case of QPSK frontends the ``frequency`` field specifies the |
|
intermediate frequency, i.e. the offset which is effectively added to |
|
the local oscillator frequency (LOF) of the LNB. The intermediate |
|
frequency has to be specified in units of kHz. For QAM and OFDM |
|
frontends the ``frequency`` specifies the absolute frequency and is |
|
given in Hz. |
|
|
|
|
|
.. c:type:: dvb_qpsk_parameters |
|
|
|
QPSK parameters |
|
=============== |
|
|
|
For satellite QPSK frontends you have to use the ``dvb_qpsk_parameters`` |
|
structure: |
|
|
|
|
|
.. code-block:: c |
|
|
|
struct dvb_qpsk_parameters { |
|
uint32_t symbol_rate; /* symbol rate in Symbols per second */ |
|
fe_code_rate_t fec_inner; /* forward error correction (see above) */ |
|
}; |
|
|
|
|
|
.. c:type:: dvb_qam_parameters |
|
|
|
QAM parameters |
|
============== |
|
|
|
for cable QAM frontend you use the ``dvb_qam_parameters`` structure: |
|
|
|
|
|
.. code-block:: c |
|
|
|
struct dvb_qam_parameters { |
|
uint32_t symbol_rate; /* symbol rate in Symbols per second */ |
|
fe_code_rate_t fec_inner; /* forward error correction (see above) */ |
|
fe_modulation_t modulation; /* modulation type (see above) */ |
|
}; |
|
|
|
|
|
.. c:type:: dvb_vsb_parameters |
|
|
|
VSB parameters |
|
============== |
|
|
|
ATSC frontends are supported by the ``dvb_vsb_parameters`` structure: |
|
|
|
|
|
.. code-block:: c |
|
|
|
struct dvb_vsb_parameters { |
|
fe_modulation_t modulation; /* modulation type (see above) */ |
|
}; |
|
|
|
|
|
.. c:type:: dvb_ofdm_parameters |
|
|
|
OFDM parameters |
|
=============== |
|
|
|
DVB-T frontends are supported by the ``dvb_ofdm_parameters`` structure: |
|
|
|
|
|
.. code-block:: c |
|
|
|
struct dvb_ofdm_parameters { |
|
fe_bandwidth_t bandwidth; |
|
fe_code_rate_t code_rate_HP; /* high priority stream code rate */ |
|
fe_code_rate_t code_rate_LP; /* low priority stream code rate */ |
|
fe_modulation_t constellation; /* modulation type (see above) */ |
|
fe_transmit_mode_t transmission_mode; |
|
fe_guard_interval_t guard_interval; |
|
fe_hierarchy_t hierarchy_information; |
|
};
|
|
|