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