120 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. -*- coding: utf-8; mode: rst -*-
 | |
| 
 | |
| .. 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;
 | |
|      };
 | 
