"DVBS2-4,DVBC-2",
"DVBS2-4,DVBT-2,DVBC-2",
"DVBS2-8,DVBT-4,DVBC-4",
+ "ISDB-T",
NULL
};
} else if (strncmp(argv[i], "ATSCC-", 6) == 0) {
type = DVB_TYPE_ATSC_C;
m = atoi(argv[i] + 6);
+ } else if (strncmp(argv[i], "ISDBT-", 6) == 0) {
+ type = DVB_TYPE_ISDB_T;
+ m = atoi(argv[i] + 6);
}
if (type == DVB_TYPE_NONE) {
tvherror(LS_SATIP, "%s: bad tuner type [%s]",
idclass_register(&satip_frontend_dvbs_slave_class);
idclass_register(&satip_frontend_atsc_t_class);
idclass_register(&satip_frontend_atsc_c_class);
+ idclass_register(&satip_frontend_isdb_t_class);
idclass_register(&satip_satconf_class);
}
};
+const idclass_t satip_frontend_isdb_t_class =
+{
+ .ic_super = &satip_frontend_class,
+ .ic_class = "satip_frontend_isdb_t",
+ .ic_caption = N_("SAT>IP ISDB-T Frontend"),
+ .ic_properties = (const property_t[]){
+ {}
+ }
+};
+
/* **************************************************************************
* Class methods
* *************************************************************************/
idc = &satip_frontend_atsc_t_class;
else if (type == DVB_TYPE_ATSC_C)
idc = &satip_frontend_atsc_c_class;
+ else if (type == DVB_TYPE_ISDB_T)
+ idc = &satip_frontend_isdb_t_class;
else {
tvherror(LS_SATIP, "unknown FE type %d", type);
return NULL;
extern const idclass_t satip_frontend_dvbs_slave_class;
extern const idclass_t satip_frontend_atsc_t_class;
extern const idclass_t satip_frontend_atsc_c_class;
+extern const idclass_t satip_frontend_isdb_t_class;
extern const idclass_t satip_satconf_class;
{ .t = DVB_SYS_DVBC_ANNEX_A, "dvbc" },
{ .t = DVB_SYS_DVBC_ANNEX_C, "dvbc2" },
{ .t = DVB_SYS_ATSC, "atsc" },
+ { .t = DVB_SYS_ISDBT, "isdbt" },
{ .t = DVB_SYS_DVBC_ANNEX_B, "dvbcb" },
{ .t = TABLE_EOD }
};
dmc->dmc_fe_modulation != DVB_MOD_QAM_AUTO)
ADD(dmc_fe_modulation, mtype,
dmc->dmc_fe_delsys == DVB_SYS_ATSC ? "8vsb" : "64qam");
+ } else if (dmc->dmc_fe_delsys == DVB_SYS_ISDBT) {
+ satip_rtsp_add_val("freq", buf, dmc->dmc_fe_freq / 1000);
+ ADD(dmc_fe_delsys, msys, "isdbt");
+ if (dmc->dmc_fe_modulation != DVB_MOD_AUTO &&
+ dmc->dmc_fe_modulation != DVB_MOD_NONE &&
+ dmc->dmc_fe_modulation != DVB_MOD_QAM_AUTO)
+ ADD(dmc_fe_modulation, mtype, "64qam");
}
if (weight > 0)
satip_rtsp_add_val("tvhweight", buf, (uint32_t)weight * 1000);
t = "ATSC-C";
goto result;
}
+ fe -= i;
+ i = satip_server_conf.satip_isdb_t;
+ if (fe <= i) {
+ res = DVB_SYS_ISDBT;
+ t = "ISDB-T";
+ goto result;
+ }
tvh_mutex_unlock(&global_lock);
return DVB_SYS_NONE;
result:
{ "dvbc", DVB_SYS_DVBC_ANNEX_A },
{ "dvbc2", DVB_SYS_DVBC_ANNEX_C },
{ "atsc", DVB_SYS_ATSC },
+ { "isdbt", DVB_SYS_ISDBT },
{ "dvbcb", DVB_SYS_DVBC_ANNEX_B }
};
const char *s = http_arg_get_remove(&hc->hc_req_args, "msys");
dmc->dmc_fe_stream_id = plp;
dmc->dmc_fe_pls_code = ds; /* check */
- } else if (msys == DVB_SYS_ATSC || msys == DVB_SYS_DVBC_ANNEX_B) {
+ } else if (msys == DVB_SYS_ISDBT || msys == DVB_SYS_ATSC || msys == DVB_SYS_DVBC_ANNEX_B) {
freq *= 1000;
if (freq < 0) goto end;
char *devicelist = NULL;
htsbuf_queue_t q;
mpegts_network_t *mn;
- int dvbt = 0, dvbs = 0, dvbc = 0, atsc = 0;
+ int dvbt = 0, dvbs = 0, dvbc = 0, atsc = 0, isdbt = 0;
int srcs = 0, delim = 0, tuners = 0, i, satipm3u = 0;
struct xml_type_xtab *p;
http_arg_list_t args;
{ "DVBC2", &satip_server_conf.satip_dvbc2, &dvbc },
{ "ATSCT", &satip_server_conf.satip_atsc_t, &atsc },
{ "ATSCC", &satip_server_conf.satip_atsc_c, &atsc },
+ { "ISDBT", &satip_server_conf.satip_isdb_t, &isdbt },
{}
};
dvbc++;
else if (idnode_is_instance(&mn->mn_id, &dvb_network_atsc_t_class))
atsc++;
+ else if (idnode_is_instance(&mn->mn_id, &dvb_network_isdb_t_class))
+ isdbt++;
#if ENABLE_IPTV
else if (idnode_is_instance(&mn->mn_id, &iptv_network_class)) {
mpegts_mux_t *mm;
if (dvbc > 9) dvbc = 9;
if (dvbs > 9) dvbs = 9;
if (atsc > 9) atsc = 9;
+ if (isdbt > 9) isdbt = 9;
for (p = xtab; p->id; p++) {
i = *p->cptr;
if (i > 0) {
.off = offsetof(struct satip_server_conf, satip_atsc_c),
.group = 4,
},
+ {
+ .type = PT_INT,
+ .id = "satip_isdbt",
+ .name = N_("ISDB-T"),
+ .desc = N_("The number of ISDB-T (Terresterial) tuners to export."),
+ .off = offsetof(struct satip_server_conf, satip_isdb_t),
+ .group = 4,
+ },
{
.type = PT_INT,
.id = "satip_max_sessions",
int satip_dvbc2;
int satip_atsc_t;
int satip_atsc_c;
+ int satip_isdb_t;
int satip_max_sessions;
int satip_max_user_connections;
char *satip_nat_ip;