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:
parent
fc10a54211
commit
8f9ac9040e
5 changed files with 0 additions and 62 deletions
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
21
src/htsp.c
21
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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue