From: Andreas Ă–man Date: Fri, 8 Jun 2012 05:56:38 +0000 (+0200) Subject: htsp: Remove the broken signal status updates (causing crashes) X-Git-Tag: 3.0~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8f9ac9040e4128915d6d66faf82bf23ebc9f14f3;p=thirdparty%2Ftvheadend.git htsp: Remove the broken signal status updates (causing crashes) htsp->hs_s may only be accessed if global_lock is held and obtaining global_lock in HTSP delivery code is not acceptable as it can take a long time to acquire that lock Fixes #1029 --- diff --git a/src/dvb/dvb.h b/src/dvb/dvb.h index ad9c30fbc..80ff45566 100644 --- a/src/dvb/dvb.h +++ b/src/dvb/dvb.h @@ -314,9 +314,6 @@ void dvb_transport_notify_by_adapter(th_dvb_adapter_t *tda); htsmsg_t *dvb_transport_build_msg(struct service *t); -int dvb_transport_get_signal_status(struct service *t, - signal_status_t *status); - /** * DVB Frontend */ diff --git a/src/dvb/dvb_transport.c b/src/dvb/dvb_transport.c index ad41234fc..38f27768e 100644 --- a/src/dvb/dvb_transport.c +++ b/src/dvb/dvb_transport.c @@ -476,20 +476,3 @@ dvb_transport_notify(service_t *t) htsmsg_add_str(m, "adapterId", tdmi->tdmi_adapter->tda_identifier); notify_by_msg("dvbService", m); } - - -/** - * Get the signal status from a DVB transport - */ -int -dvb_transport_get_signal_status(service_t *t, signal_status_t *status) -{ - th_dvb_mux_instance_t *tdmi = t->s_dvb_mux_instance; - - status->status_text = dvb_mux_status(tdmi); - status->snr = tdmi->tdmi_snr; - status->signal = tdmi->tdmi_signal; - status->ber = tdmi->tdmi_ber; - status->unc = tdmi->tdmi_uncorrected_blocks; - return 0; -} diff --git a/src/htsp.c b/src/htsp.c index af897f07c..b9fc3e17d 100644 --- a/src/htsp.c +++ b/src/htsp.c @@ -1580,7 +1580,6 @@ htsp_stream_deliver(htsp_subscription_t *hs, th_pkt_t *pkt) htsp_send(htsp, m, pkt->pkt_payload, &hs->hs_q, pktbuf_len(pkt->pkt_payload)); if(hs->hs_last_report != dispatch_clock) { - signal_status_t status; /* Send a queue and signal status report every second */ @@ -1614,26 +1613,6 @@ htsp_stream_deliver(htsp_subscription_t *hs, th_pkt_t *pkt) /* We use a special queue for queue status message so they're not blocked by anything else */ htsp_send_message(hs->hs_htsp, m, &hs->hs_htsp->htsp_hmq_qstatus); - - - if(!service_get_signal_status(hs->hs_s->ths_service, &status)) { - - m = htsmsg_create_map(); - htsmsg_add_str(m, "method", "signalStatus"); - htsmsg_add_u32(m, "subscriptionId", hs->hs_sid); - - htsmsg_add_str(m, "feStatus", status.status_text); - if(status.snr != -2) - htsmsg_add_u32(m, "feSNR", status.snr); - if(status.signal != -2) - htsmsg_add_u32(m, "feSignal", status.signal); - if(status.ber != -2) - htsmsg_add_u32(m, "feBER", status.ber); - if(status.unc != -2) - htsmsg_add_u32(m, "feUNC", status.unc); - htsp_send_message(hs->hs_htsp, m, &hs->hs_htsp->htsp_hmq_qstatus); - } - } pkt_ref_dec(pkt); } diff --git a/src/service.c b/src/service.c index 1a405d1af..515c39796 100644 --- a/src/service.c +++ b/src/service.c @@ -1092,22 +1092,3 @@ service_get_encryption(service_t *t) } return 0; } - - -/** - * Get the signal status from a service - */ -int -service_get_signal_status(service_t *t, signal_status_t *status) -{ - // get signal status from the service - switch(t->s_type) { -#if ENABLE_LINUXDVB - case SERVICE_TYPE_DVB: - return dvb_transport_get_signal_status(t, status); -#endif - default: - return -1; - } -} - diff --git a/src/service.h b/src/service.h index 2185e4225..db6213a8b 100644 --- a/src/service.h +++ b/src/service.h @@ -570,8 +570,6 @@ int tss2errcode(int tss); uint16_t service_get_encryption(service_t *t); -int service_get_signal_status(service_t *t, signal_status_t *status); - void service_set_dvb_default_charset(service_t *t, const char *dvb_default_charset); void service_set_dvb_eit_enable(service_t *t, int dvb_eit_enable);