hiband = switchfreq && p->frequency > switchfreq;
pol = tdmi->tdmi_conf.dmc_polarisation;
- diseqc_setup(tda->tda_fe_fd,
+ if ((r = diseqc_setup(tda->tda_fe_fd,
port,
pol == POLARISATION_HORIZONTAL ||
pol == POLARISATION_CIRCULAR_LEFT,
- hiband, tda->tda_diseqc_version);
+ hiband, tda->tda_diseqc_version)) != 0)
+ tvhlog(LOG_ERR, "dvb", "diseqc setup failed %d\n", r);
if(hiband)
p->frequency = abs(p->frequency - hifreq);
uint16_t tsid)
{
int freq, symrate;
+ uint16_t orbital_pos;
struct dvb_mux_conf dmc;
if(!tdmi->tdmi_adapter->tda_autodiscovery)
if(!freq)
return -1;
+ orbital_pos = bcdtoint(ptr[4]) * 100 + bcdtoint(ptr[5]);
+
symrate =
bcdtoint(ptr[7]) * 100000 + bcdtoint(ptr[8]) * 1000 +
bcdtoint(ptr[9]) * 10 + (ptr[10] >> 4);
else
dmc.dmc_fe_modulation = 0;
- if (ptr[6] & 0x04) {
+ if (ptr[6] & 0x04)
dmc.dmc_fe_delsys = SYS_DVBS2;
+ else
+ dmc.dmc_fe_delsys = SYS_DVBS;
- switch ((ptr[6] >> 3) & 0x03) {
- case 0x00:
- dmc.dmc_fe_rolloff = ROLLOFF_35;
- break;
- case 0x01:
- dmc.dmc_fe_rolloff = ROLLOFF_25;
- break;
- case 0x02:
- dmc.dmc_fe_rolloff = ROLLOFF_20;
- break;
- default:
- case 0x03:
- dmc.dmc_fe_rolloff = ROLLOFF_AUTO;
- break;
- }
+ switch ((ptr[6] >> 3) & 0x03) {
+ case 0x00:
+ dmc.dmc_fe_rolloff = ROLLOFF_35;
+ break;
+ case 0x01:
+ dmc.dmc_fe_rolloff = ROLLOFF_25;
+ break;
+ case 0x02:
+ dmc.dmc_fe_rolloff = ROLLOFF_20;
+ break;
+ default:
+ case 0x03:
+ dmc.dmc_fe_rolloff = ROLLOFF_AUTO;
+ break;
}
- else {
- dmc.dmc_fe_delsys = SYS_DVBS;
- dmc.dmc_fe_rolloff = ROLLOFF_35;
+
+ if (dmc.dmc_fe_delsys == SYS_DVBS && dmc.dmc_fe_rolloff != ROLLOFF_35) {
+ printf ("error descriptor\n");
+ return -1;
}
+
#endif
dvb_mux_create(tdmi->tdmi_adapter, &dmc, tsid, NULL,
"automatic mux discovery", 1, NULL);