ASSIGN(tunercfg);
#undef ASSIGN
sd->sd_info.rtsp_port = info->rtsp_port;
+ sd->sd_info.srcs = info->srcs;
/*
* device specific hacks
goto finish;
info.rtsp_port = 554;
+ info.srcs = 4;
upc = htsmsg_xml_get_cdata_str(device, "UPC");
if (upc && (s = strstr(upc, "{{{")) != NULL &&
strcmp(s + strlen(s) - 3, "}}}") == 0) {
if ((p = strstr(s, "RTSP:")) != NULL) {
+ if ((i = atoi(p + 5)) > 0 && i < 65535)
+ info.rtsp_port = i;
+ }
+ if ((p = strstr(s, "SRCS:")) != NULL) {
i = atoi(p + 5);
- info.rtsp_port = i;
+ if ((i = atoi(p + 5)) > 0 && i < 128)
+ info.srcs = i;
}
}
int stream;
int frontend;
int findex;
+ int src;
uint32_t nsession;
char session[9];
dvb_mux_conf_t dmc;
LIST_FOREACH(mn, &mpegts_network_all, mn_global_link) {
ln = (dvb_network_t *)mn;
if (ln->ln_type == rs->dmc.dmc_fe_type &&
- mn->mn_satip_source == rs->findex)
+ mn->mn_satip_source == rs->src)
break;
}
if (mn) {
mtype = mtype_to_tvh(hc);
if (mtype == DVB_MOD_NONE) goto error;
+ src = 1;
+
if (msys == DVB_SYS_DVBS || msys == DVB_SYS_DVBS2) {
src = atoi(http_arg_get_remove(&hc->hc_req_args, "src"));
if (stream_id == 0)
stream_id++;
rs->stream = stream_id % 0x7fff;
+ rs->src = src;
memset(&rs->udp_rtp, 0, sizeof(rs->udp_rtp));
memset(&rs->udp_rtcp, 0, sizeof(rs->udp_rtcp));
char *devicelist = NULL;
htsbuf_queue_t q;
mpegts_network_t *mn;
- int dvbt = 0, dvbs = 0, dvbc = 0, delim = 0, i;
+ int dvbt = 0, dvbs = 0, dvbc = 0, srcs = 0, delim = 0, i;
htsbuf_queue_init(&q, 0);
continue;
if (idnode_is_instance(&mn->mn_id, &dvb_network_dvbt_class))
dvbt++;
- else if (idnode_is_instance(&mn->mn_id, &dvb_network_dvbs_class))
+ else if (idnode_is_instance(&mn->mn_id, &dvb_network_dvbs_class)) {
dvbs++;
- else if (idnode_is_instance(&mn->mn_id, &dvb_network_dvbc_class))
+ if (srcs < mn->mn_satip_source)
+ srcs = mn->mn_satip_source;
+ } else if (idnode_is_instance(&mn->mn_id, &dvb_network_dvbc_class))
dvbc++;
}
if (dvbt && (i = config_get_int("satip_dvbt", 0)) > 0) {
dvbc = 0;
}
pthread_mutex_unlock(&global_lock);
+ if (!dvbs)
+ srcs = 0;
devicelist = htsbuf_to_string(&q);
htsbuf_queue_flush(&q);
snprintf(buf, sizeof(buf), MSG,
tvheadend_version, tvheadend_version,
satip_server_uuid, tvheadend_version,
- satip_server_rtsp_port, dvbs,
+ satip_server_rtsp_port, srcs,
http_server_ip, http_server_port,
http_server_ip, http_server_port,
http_server_ip, http_server_port,