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
This commit is contained in:
Andreas Öman 2012-06-08 07:56:38 +02:00
parent fc10a54211
commit 8f9ac9040e
5 changed files with 0 additions and 62 deletions

View file

@ -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
*/

View file

@ -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;
}

View file

@ -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);
}

View file

@ -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;
}
}

View file

@ -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);