SAT>IP: Do not enable the second RTSP SHUTDOWN sequence by default

This commit is contained in:
Jaroslav Kysela 2014-12-12 11:28:04 +01:00
parent d760c4cb7c
commit 07a8f5ff06
4 changed files with 30 additions and 17 deletions

View file

@ -85,6 +85,9 @@ setting this to 100.</dd>
<p>
<dt><b>PIDs in setup</b></dt>
<dd>Enable, if the SAT>IP box requires pids=0 parameter in the SETUP RTSP command.</dd>
<p>
<dt><b>Double RTSP Shutdown</b></dt>
<dd>Enable, if the SAT>IP box might require to send twice the RTSP SHUTDOWN command.</dd>
<p>
<dt><b>Force pilot for DVB-S2</b></dt>
<dd>Enable, if the SAT>IP box requiest plts=on parameter in the SETUP RTSP

View file

@ -180,6 +180,13 @@ const idclass_t satip_device_class =
.opts = PO_ADVANCED,
.off = offsetof(satip_device_t, sd_pids0),
},
{
.type = PT_BOOL,
.id = "shutdown2",
.name = "Double RTSP Shutdown",
.opts = PO_ADVANCED,
.off = offsetof(satip_device_t, sd_shutdown2),
},
{
.type = PT_BOOL,
.id = "piloton",

View file

@ -1474,24 +1474,26 @@ new_tune:
}
}
/* for sure - the second sequence */
r = rtsp_teardown(rtsp, (char *)b, NULL);
if (r < 0) {
tvhtrace("satip", "%s - bad teardown2", buf);
} else {
while (1) {
r = http_client_run(rtsp);
if (r != HTTP_CON_RECEIVING && r != HTTP_CON_SENDING)
break;
nfds = tvhpoll_wait(efd, ev, 1, 50); /* only small delay here */
if (nfds == 0)
break;
if (nfds < 0) {
if (ERRNO_AGAIN(errno))
continue;
break;
if (lfe->sf_device->sd_shutdown2) {
r = rtsp_teardown(rtsp, (char *)b, NULL);
if (r < 0) {
tvhtrace("satip", "%s - bad teardown2", buf);
} else {
while (1) {
r = http_client_run(rtsp);
if (r != HTTP_CON_RECEIVING && r != HTTP_CON_SENDING)
break;
nfds = tvhpoll_wait(efd, ev, 1, 50); /* only small delay here */
if (nfds == 0)
break;
if (nfds < 0) {
if (ERRNO_AGAIN(errno))
continue;
break;
}
if(ev[0].events & (TVHPOLL_ERR | TVHPOLL_HUP))
break;
}
if(ev[0].events & (TVHPOLL_ERR | TVHPOLL_HUP))
break;
}
}
}

View file

@ -82,6 +82,7 @@ struct satip_device
int sd_sig_scale;
int sd_pids0;
int sd_pilot_on;
int sd_shutdown2;
int sd_dbus_allow;
pthread_mutex_t sd_tune_mutex;
};