int rtsp_flags, position, reply;
uint32_t seq, unc;
udp_multirecv_t um;
- uint64_t u64, u64_2;
+ uint64_t u64, u64_2, last_data;
long stream_id;
/* If set - the thread will be cancelled */
udp_rtp_packet_destroy_all(lfe);
lfe->sf_skip_ts = MINMAX(lfe->sf_device->sd_skip_ts, 0, 200) * 188;
+ last_data = mclk();
+
while ((reply || running) && !fatal) {
nfds = tvhpoll_wait(efd, ev, 1, ms);
continue;
}
+ if (last_data + sec2mono(5) < mclk()) {
+ tvhwarn(LS_SATIP, "%s - no data received, restarting RTSP", buf);
+ satip_frontend_tuning_error(lfe, tr);
+ fatal = 1;
+ continue;
+ }
+
if (nfds < 1) continue;
if (ev[0].ptr == rtsp) {
if (ev[0].ptr == rtcp) {
c = recv(rtcp->fd, b, sizeof(b), MSG_DONTWAIT);
if (c > 0) {
+ last_data = mclk();
pthread_mutex_lock(&lfe->sf_dvr_lock);
if (lfe->sf_req == lfe->sf_req_thread)
satip_frontend_decode_rtcp(lfe, buf, mmi, b, c);
tvherror(LS_SATIP, "%s - multirecv error %d (%s)",
buf, errno, strerror(errno));
break;
+ } else {
+ last_data = mclk();
}
for (i = 0, unc = 0; i < tc; i++) {