/*
*
*/
-static int
-rtsp_delsys(int fe, int *findex)
+int
+satip_rtsp_delsys(int fe, int *findex, const char **ftype)
{
+ const char *t = NULL;
int res, i;
if (fe < 1)
i = satip_server_conf.satip_dvbs;
if (fe <= i) {
res = DVB_SYS_DVBS;
+ t = "DVB-S";
goto result;
}
fe -= i;
i = satip_server_conf.satip_dvbs2;
if (fe <= i) {
res = DVB_SYS_DVBS;
+ t = "DVB-S2";
goto result;
}
fe -= i;
i = satip_server_conf.satip_dvbt;
if (fe <= i) {
res = DVB_SYS_DVBT;
+ t = "DVB-T";
goto result;
}
fe -= i;
i = satip_server_conf.satip_dvbt2;
if (fe <= i) {
res = DVB_SYS_DVBT;
+ t = "DVB-T2";
goto result;
}
fe -= i;
i = satip_server_conf.satip_dvbc;
if (fe <= i) {
res = DVB_SYS_DVBC_ANNEX_A;
+ t = "DVB-C";
goto result;
}
fe -= i;
i = satip_server_conf.satip_dvbc2;
if (fe <= i) {
res = DVB_SYS_DVBC_ANNEX_A;
+ t = "DVB-C2";
goto result;
}
fe -= i;
i = satip_server_conf.satip_atsc_t;
if (fe <= i) {
res = DVB_SYS_ATSC;
+ t = "ATSC-T";
goto result;
}
fe -= i;
i = satip_server_conf.satip_atsc_c;
if (fe <= i) {
res = DVB_SYS_DVBC_ANNEX_B;
+ t = "ATSC-C";
goto result;
}
pthread_mutex_unlock(&global_lock);
result:
pthread_mutex_unlock(&global_lock);
*findex = i;
+ if (ftype)
+ *ftype = t;
return res;
}
rs = rtsp_find_session(hc, stream);
if (fe > 0) {
- delsys = rtsp_delsys(fe, &findex);
- if (delsys == DVB_SYS_NONE)
+ delsys = satip_rtsp_delsys(fe, &findex, NULL);
+ if (delsys == DVB_SYS_NONE) {
+ tvherror("satips", "fe=%d does not exist", fe);
goto end;
+ }
} else {
delsys = msys;
}
static void satip_server_info(const char *prefix, int descramble, int muxcnf)
{
+ int fe, findex;
+ const char *ftype;
+
tvhinfo("satips", "SAT>IP Server %sinitialized "
"(HTTP %s:%d, RTSP %s:%d, "
"descramble %d, muxcnf %d)",
http_server_ip, http_server_port,
http_server_ip, satip_server_rtsp_port,
descramble, muxcnf);
- tvhinfo("satips", "SAT>IP Server tuners: DVB-T/T2 %d/%d, DVB-S/S2 %d/%d, DVB-C/C2 %d/%d, ATSC-T/C %d/%d",
- satip_server_conf.satip_dvbt,
- satip_server_conf.satip_dvbt2,
- satip_server_conf.satip_dvbs,
- satip_server_conf.satip_dvbs2,
- satip_server_conf.satip_dvbc,
- satip_server_conf.satip_dvbc2,
- satip_server_conf.satip_atsc_t,
- satip_server_conf.satip_atsc_c);
+ for (fe = 1; fe <= 128; fe++) {
+ if (satip_rtsp_delsys(fe, &findex, &ftype) == DVB_TYPE_NONE)
+ break;
+ tvhinfo("satips", " tuner[fe=%d]: %s #%d", fe, ftype, findex);
+ }
}
/*
void satip_rtp_init(int boot);
void satip_rtp_done(void);
+int satip_rtsp_delsys(int fe, int *findex, const char **ftype);
+
void satip_server_rtsp_init(const char *bindaddr, int port,
int descramble, int rewrite_pmt, int muxcnf,
const char *nat_ip);